ASP. NET Core Invoke API через Почтальона - PullRequest
0 голосов
/ 04 февраля 2020

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

Хорошо, я пытаюсь вызвать этот API через Почтальон, и я не могу определить, почему я не могу получить к нему доступ, хотя я уже проверил маршруты.

Ниже приведен пример шаблона

[HttpGet]
    [Route("Details")]
    public async Task<IActionResult> GetDetails(string value = null)
    {
        var response = new ListModelResponse<SomeModel>() as IListModelResponse<SomeModel>;

        try
        {
            response.Model = await GetDetailsRepository
                    .GetDetailsSS(value)
                    .Select(item => item.ToViewModel())      
                    .OrderBy(item => item.Name)
                    .ToListAsync();
        }
        catch (Exception ex)
        {
            response.DidError = true;
            response.ErrorMessage = ex.Message;
        }

        return response.ToHttpResponse();
    }

И в понимании приложений Visual Studio я вижу, что он вызывает API, но кажется, что он не может пройти. Проверьте этот фрагмент описания

Другие API работают нормально, кажется, я что-то упустил, что я не могу понять прямо сейчас.

Для маршрутизации у меня есть this.

[Route("api/[controller]")]

Я также проверил токен и, проанализировав его, получил необходимую информацию для доступа к этому API.

Спасибо, ребята!

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Эта ошибка связана с неправильным URL-адресом, указанным в запросе. Правильный URL должен быть https://localhost: 44309 / api / имя вашего контроллера / Подробности? Значение = CAT

ie. Если имя контроллера - ProductsController, то URL должен быть https://localhost: 44309 / api / Products / Details? Value = CAT .

[Route("api/[controller]")]
public class ProductsController : Controller
{
   [HttpPost("Details")]     
    public async Task<IActionResult> GetDetails(string value = null)
    {
        ...
    }
}
1 голос
/ 04 февраля 2020

Не похоже, что у вас есть имя контроллера в URL запроса.

api / [controller] / Details? Value = CAT ...

...