Estamos desarrollando una API Rest para el sitio web de comercio electrónico que será consumida por las aplicaciones móviles.
En la página de inicio de una aplicación, debemos llamar a múltiples recursos como Sliders, Top Brands, Best Selling Products, Trending Products, etc.
Dos opciones para realizar llamadas API:
Llamada única
www.example.com/api/GetAllInHome
Múltiples llamadas:
www.example.com/api/GetSliders
www.example.com/api/GetTopBrands
www.example.com/api/GetBestSellingProducts
www.example.com/api/GetTrendingProducts
¿Cuál es el mejor enfoque para el diseño de la API de descanso: llamada única o múltiple, explica los pros y los contras?
¿Qué tomará más tiempo para responder a la solicitud?
fuente
TL; DR: aparte de todas las demás consideraciones de la aplicación, realizar una sola llamada sería más rápido que realizar varias llamadas. Ejecutar las llamadas de forma asincrónica puede reducir el tiempo total necesario para completar una operación dada desde la perspectiva de su usuario (que bien podría ser todo lo que necesita), pero en conjunto, el tiempo que se necesita aún sería más largo para múltiples llamadas.
Sin embargo, en su caso, no estoy seguro de que esa sea la historia completa.
Las API REST son un término ligeramente ambiguo, debido a diversas interpretaciones del documento que hicieron popular la idea. Sin embargo, incluso con la interpretación más liberal de lo que constituye una API REST, lo que tienes realmente no encaja.
El principio central es que tiene un recurso en el que desea realizar una acción. El URI identifica el recurso que le interesa, y normalmente usaría los verbos HTTP para indicar lo que desea hacer a ese recurso.
En su caso específico, todos sus métodos tienen la palabra 'get' en su nombre. Debería cambiar el verbo utilizado en la solicitud HTTP para indicar que desea 'obtener' el recurso disponible en esa ubicación.
Su esquema de URI debe representar la jerarquía lógica de los recursos que desea poner a disposición de los usuarios de su API, por lo que en su caso consideraría usar algo como
/api/products?category=sliders
filtrar su colección de productos. Esto significa que cuando los clientes desean obtener todos sus productos, simplemente pueden omitir la cadena de consulta.fuente
url
para API pero la solicitud de diferentes recursos se debe hacer usando Query String? , también verifique esto .keep-alive
no va a eliminar esto por completo.questions
verá que el URI es/questions
, cuando haga clic en una de sus etiquetas favoritas, el URI es/questions/tagged/<tagname>