Estamos desenvolvendo uma API Rest para site de comércio eletrônico, que será consumida por aplicativos móveis.
Na página inicial de um aplicativo, precisamos chamar vários recursos, como Sliders, Marcas Principais, Produtos Mais Vendidos, Produtos em Tendência etc.
Duas opções para fazer chamadas de API:
Chamada única:
www.example.com/api/GetAllInHome
Várias chamadas:
www.example.com/api/GetSliders
www.example.com/api/GetTopBrands
www.example.com/api/GetBestSellingProducts
www.example.com/api/GetTrendingProducts
Qual é a melhor abordagem para o design da API de descanso - chamada única ou múltipla, explique os prós e os contras?
O que levará mais tempo para responder à solicitação?
fonte
TL; DR: Todas as outras considerações de aplicativos à parte, a realização de uma única chamada seria mais rápida que a realização de várias chamadas. Executar as chamadas de forma assíncrona pode reduzir o tempo total necessário para concluir uma determinada operação da perspectiva do usuário (que pode ser tudo o que você precisa), mas, em conjunto, o tempo necessário ainda será mais longo para várias chamadas.
No seu caso, no entanto, não tenho certeza se essa é a história completa.
APIs REST são um termo um pouco ambíguo, devido a várias interpretações do artigo que popularizaram a ideia. Mesmo pela interpretação mais liberal do que constitui uma API REST, o que você tem não se encaixa realmente.
O princípio básico é que você possui um recurso no qual deseja executar uma ação. O URI identifica o recurso no qual você está interessado, e você normalmente usaria os verbos HTTP para indicar o que deseja fazer com esse recurso.
No seu caso específico, todos os seus métodos têm a palavra 'get' em seu nome. Você deve alterar o verbo usado na solicitação HTTP para indicar que deseja 'obter' o recurso disponível nesse local.
Seu esquema de URI deve representar a hierarquia lógica dos recursos que você deseja disponibilizar para os usuários da sua API. Portanto, no seu caso, eu consideraria usar algo como
/api/products?category=sliders
para filtrar sua coleção de produtos. Isso significa que quando os clientes desejam obter todos os seus produtos, eles podem simplesmente omitir a string de consulta.fonte
url
para API, mas a solicitação deve ser feita com recursos diferentes usando Query String? , verifique também isso .keep-alive
arent vai remover isso completamente.questions
você vê a URI é/questions
, quando você clica em uma das suas marcas favoritas, a URI é/questions/tagged/<tagname>