2016-02-19 3 views
0

Я знаю, что это не очень технический вопрос. Но мне нужны некоторые предложения. Я знаю, что существуют некоторые соглашения для именования Rest API. У меня есть требование создать API-интерфейс для доступа через Web-интерфейс Asp.Net. Служба должна получить все школы, расположенные рядом с местоположением пользователя. Входы: Широта пользователя, Долгота, РасстояниеИменование API-интерфейса для отдыха

Как я могу назвать URL.

api/v1/Schools/Near, 

api/v1/NearbySchools 

Я знаю его лучше использовать GET: api/v1/Schools Но может быть в будущем количество входов изменений, так что лучше сделать как POST. POST: api/v1/Schools Но это также есть проблема. У меня уже есть такой URL, чтобы создать новую школу.

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

+0

следовать единому соглашению на протяжении всего проекта. Вы также можете попробовать, как 'Retrieve/SchoolsNearBY' означает' /<функциональность> ' –

ответ

1

Различные шаблоны используются разработчиками для создания REST API.

api/v1/Schools 

С параметрами запроса подходит в соответствии с требованием. С ограничением относительно длины ввода.

В таких случаях метод POST с желаемым вводом, который может быть расширен до любого количества критериев поиска с телом запроса.

api/v1/Schools/search 

Следующие на практике.

  • /школы - POST - создать
  • /школы - GET - получить все школы
  • /школы/{schoolid} - GET - Получить конкретную школу
  • /школы/{schoolid} - PUT - Обновление
  • /школы/{schoolid} - DELETE - Удаление школы
  • /школы/поиск - ПОСТ - поиск школы на основе критериев поиска

В качестве описания вашего REST API вы можете использовать HATEOAS, чтобы потребители API имели документальную структуру.

+0

Привет @VinayVeluri - Спасибо за ответ. Предположим, мне нужно действие, которое позволяет клиенту классифицировать школу как «общедоступную» или «частную». Это в основном действие «изменить», но на самом деле оно не редактирует всю «школьную» сущность. В любом случае, мне нужен URL-адрес PUT для действительного действия редактирования. Какое у вас это предложение для этого типа URL. Я мог бы пойти с: 'PUT/school/{schoolid}/public-private' которые получают простое значение или маленький jason в теле запроса PUT или что? – Tohid

Смежные вопросы