Мы разрабатываем Rest API для веб-сайта электронной коммерции, который будет использоваться мобильными приложениями.
На главной странице приложения нам нужно назвать несколько ресурсов, таких как слайдеры, лучшие бренды, самые продаваемые продукты, трендовые продукты и т. Д.
Два варианта выполнения вызовов API:
Одиночный звонок:
www.example.com/api/GetAllInHome
Несколько звонков:
www.example.com/api/GetSliders
www.example.com/api/GetTopBrands
www.example.com/api/GetBestSellingProducts
www.example.com/api/GetTrendingProducts
Какой подход лучше всего подходит для остальных API? Один или несколько вызовов, объясните плюсы и минусы?
Что займет больше времени, чтобы ответить на запрос?
источник
TL; DR: если не учитывать все другие аспекты применения, выполнение одного вызова будет быстрее, чем выполнение нескольких вызовов. Выполнение вызовов асинхронно может сократить общее время, необходимое для выполнения данной операции с точки зрения вашего пользователя (что вполне может быть всем, что вам нужно), но в совокупности время, затрачиваемое на множественные вызовы, все равно будет больше.
В вашем случае, однако, я не уверен, что это полная история.
REST API - это немного двусмысленный термин, из-за различных толкований статьи, которые сделали идею популярной. Даже самой либеральной интерпретацией того, что представляет собой API REST, то, что у вас есть, на самом деле не подходит.
Основной принцип заключается в том, что у вас есть ресурс, на котором вы хотите выполнить действие. URI идентифицирует интересующий вас ресурс, и вы обычно используете HTTP-глаголы, чтобы указать, что вы хотите сделать с этим ресурсом.
В вашем конкретном случае все ваши методы имеют слово «get» в своем имени. Вы должны изменить глагол, используемый в HTTP-запросе, чтобы указать, что вы хотите «получить» ресурс, доступный в этом месте.
Ваша схема URI должна представлять логическую иерархию ресурсов, которые вы хотите сделать доступными для пользователей вашего API, поэтому в вашем случае я бы хотел использовать что-то вроде
/api/products?category=sliders
фильтрации вашей коллекции продуктов. Это означает, что когда клиенты хотят получить все ваши продукты, они могут просто пропустить строку запроса.источник
url
for API, но следует ли запрашивать разные ресурсы с помощью Query String? Также проверьте это .keep-alive
собираюсь полностью удалить это.questions
вы видите URI/questions
, когда вы нажимаете на один из ваших любимых тегов, URI/questions/tagged/<tagname>