Я создал веб-сервис с использованием WEB API.Маршрутизация в ASP.NET Web API
Я использую эту конфигурацию маршрутизации
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
И мое решение включает два контроллера (ProductController
и DetailController
)
Поэтому, когда я хочу, чтобы вызвать WS, который относится к методу GetDetails (расположен внутри DetailController) Я должен использовать URL, как это:
http://localhost/api/Details/GetDetails/?id=4
есть ли способ для использования, для того же запроса, этот URL Вместо этого:
http://localhost/api/Product/GetDetails/?id=4
Дает метод GetDetails внутри DetailController?
Можете ли вы объяснить причину использования параметра запроса вместо самого URL-адреса для представления ресурса (например, http: // localhost/api/Details/4'). Это не кажется «RESTful». –
Вы правы. Лучше иметь '/ {id}' в этом случае. Но это вовсе не означает, что параметры строки запроса не являются RESTful. Обычно, когда у меня есть дополнительные параметры, я передаю их как параметры строки запроса. Обычно это имеет смысл в запросах GET, которые должны принимать несколько параметров. Но я согласен с вами в том, что идентификатор, который идентифицирует ресурс, лучше передавать в части пути. –
Нет, я понимаю вариант использования для параметра запроса. Казалось, что id (в данном случае) должен был представлять ресурс однозначно. –