Я изучил, как использовать API в проекте MVC, но у меня есть некоторые сомнения. (Я пишу на языке C#, прежде чем кто-либо спрашивает).Как работает и ведет себя класс ApiController?
До сих пор, я знаю, что конфигурация маршрута АНИ имеет значение в WebApiConfig
классе и по умолчанию маршрут:
routeTemplate: "api/{controller}/{id}"
Делая это, когда я скомпилировать запрос JSon Я знаю, что URI у меня есть для вызова, чтобы получить конкретный результат.
Но я хотел бы быть более точным, так я изменил маршрут АНИ к:
routeTemplate: "api/{controller}/{action}/{id}"
С этим маршрутом я смогу построить URI непосредственно к конкретному действию (метод?) Внутри моей ApiController.
Также я узнал, что /{controller}/
, создавая URI с помощью jSon, является именем класса. То есть, если класс ProductsController
, то имя контроллера, которое я должен использовать для создания URI, равно /products
. (Таким образом, весь URL-адрес будет /api/products
).
Вот вопросы:
Если я класс ApiController назвал только Products
, он узнаваем как часть URI? Или класс ApiController должен заканчиваться «Контроллером»?
Следуя руководству, я поместил свой ApiController il в ту же папку, что и другие контроллеры. Я знаю, что можно поместить Apis в разные папки. Итак, - это каждый API, автоматически распознаваемый MVC? Я имею в виду, Где бы я их не сохранил, признаны ли они API?
Если это так, Могу ли я в конечном итоге вызвать API, расположенный в другом проекте, чем тот, над которым я работаю?
Могу ли я создать единый проект (как библиотеку классов) с набором API-интерфейсов?
Изменяется ли конфигурация маршрута, если я хочу назвать API в отдельном проекте?
его HTTP-запрос, JSON имеет значение только в том случае, если запрос имеет контент или заголовок Accept. – Jodrell
действительно хотите URI, например 'api/Product/Get/1'? Разве глагол HTTP-запроса не определяет действие? – Jodrell
@ Jodrell: Он не говорит, что хочет иметь действие под названием Get. Действие может быть любым видом, например. api/Продукты/Резюме или api/Продукты/Подробнее –