Member 11697488 Ответов: 1

Grpc .NET для контроллера


Я пытаюсь использовать gRPC в своем проекте, я прочитал документацию здесьвот только не понимаю, как это сделать. Мой код контроллера выглядит следующим образом

[Route("api/[controller]/[action]")]
[ApiController]
public class MGE : ControllerBase
{
    private readonly ImService mService;

    public MGE(ImService _mService)
    {
        mService = _mService;
    }

    [HttpPost]
    [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(string))]
    [ProducesResponseType(StatusCodes.Status400BadRequest)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    public async Task<IActionResult> PatientById(IdRequest model)
    {
        if (!ModelState.IsValid)
        {
            string[] errors = ModelState.Values
                .SelectMany(v => v.Errors)
                .Select(e => e.ErrorMessage)
                .ToArray();

            return BadRequest(errors);
        }

        try
        {
            string mpid = await mService.idAsync(model);

            if (string.IsNullOrEmpty(mpid))
            {
                return NotFound();
            }

            return Ok(mpid);
        }
        catch (ApplicationException ae)
        {
            return BadRequest(new string[] { ae.Message });
        }
    }

    [HttpPost]
    [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(string))]
    [ProducesResponseType(StatusCodes.Status400BadRequest)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    public async Task<IActionResult> PatientByDate(DateRequest model)
    {
        if (!ModelState.IsValid)
        {
            string[] errors = ModelState.Values
                .SelectMany(v => v.Errors)
                .Select(e => e.ErrorMessage)
                .ToArray();

            return BadRequest(errors);
        }

        try
        {
            string mpid = await mService.DateAsync(model);

            if (string.IsNullOrEmpty(mpid))
            {
                return NotFound();
            }

            return Ok(mpid);
        }
        catch (ApplicationException ae)
        {
            return BadRequest(new string[] { ae.Message });
        }
    }

    [HttpPost]
    public IActionResult SetMI()
    {
        return Ok();
    }
}


Я не знаю, что написать в моем Протосе и моем служебном файле. Не могли бы вы дать мне код того, как это сделать, и объяснение по этому поводу? Потому что я должен сделать то же самое еще для 19 модулей, и я действительно застрял.

Я буду очень благодарен за помощь.

Заранее благодарю вас!

Что я уже пробовал:

Читая документацию и пробуя все примеры

Richard MacCutchan

Попробуйте спросить человека, который написал код.

Member 11697488

А вы не могли бы мне помочь?

1 Ответов

Рейтинг:
2

Richard MacCutchan

На самом деле у них даже есть свой собственный форум: Сообщество – gRPC[^]


Member 11697488

Вроде как бесполезный комментарий с твоей стороны.

Richard MacCutchan

Тогда это, безусловно, соответствует вашему вопросу.

Member 11697488

Я прошу о помощи. Разве не в этом цель подобных платформ?

Richard MacCutchan

Нет, вы просите код для использования с каким-то сторонним продуктом. И очевидно, что лучше всего спросить на форуме, где находятся разработчики этого продукта, поскольку они являются людьми, которые его знают.

Если у вас есть конкретная проблема с кодированием, то люди здесь могут помочь, но это не то, о чем вы спрашиваете.

Member 11697488

Спасибо. Вы выиграли цену наименее полезного человека на планете.

Richard MacCutchan

Хорошо, попробуйте объяснить свою реальную проблему, и, возможно, вы получите некоторую помощь.

Member 11697488

Я пытаюсь сделать свои услуги и свои протосы, но безуспешно. Я ищу кого-то опытного, чтобы показать мне пример для обоих относительно моего кода, чтобы узнать, как это делается, и после этого я смогу сделать все сам

Dave Kreskowiak

И где вы найдете кого-то Опытного с конкретным продуктом? Форумы, посвященные этому продукту, как Ричард уже связал вас с ним!

Richard MacCutchan

- Я ищу кого-нибудь опытного."
Именно поэтому я предложил вам зайти на сайт gRPC и поговорить с экспертами.