Wir entwickeln eine Rest-API für die E-Commerce-Website, die von mobilen Apps genutzt wird.
Auf der Startseite einer App müssen mehrere Ressourcen aufgerufen werden, z. B. Schieberegler, Top-Marken, meistverkaufte Produkte, Trendprodukte usw.
Zwei Optionen zum Ausführen von API-Aufrufen:
Einzelruf:
www.example.com/api/GetAllInHome
Mehrere Anrufe:
www.example.com/api/GetSliders
www.example.com/api/GetTopBrands
www.example.com/api/GetBestSellingProducts
www.example.com/api/GetTrendingProducts
Welches ist der beste Ansatz für das Design von Rest-APIs? Einfacher oder mehrfacher Aufruf, Vor- und Nachteile?
Was wird mehr Zeit in Anspruch nehmen, um auf die Anfrage zu antworten?
quelle
TL; DR: Abgesehen von allen anderen Anwendungsaspekten ist die Ausführung eines einzelnen Anrufs schneller als die Ausführung mehrerer Anrufe. Das asynchrone Ausführen der Aufrufe kann die Gesamtzeit verkürzen, die zum Abschließen eines bestimmten Vorgangs aus Sicht Ihres Benutzers erforderlich ist (was möglicherweise alles ist, was Sie benötigen). Insgesamt würde die für mehrere Aufrufe benötigte Zeit jedoch immer noch länger sein.
In Ihrem Fall bin ich mir jedoch nicht sicher, ob das die ganze Geschichte ist.
REST-APIs sind aufgrund der verschiedenen Interpretationen des Papiers, die die Idee populär gemacht haben, ein etwas mehrdeutiger Begriff. Selbst bei der liberalsten Interpretation dessen, was eine REST-API ausmacht, passt das, was Sie haben, nicht wirklich zusammen.
Das Kernprinzip ist, dass Sie über eine Ressource verfügen, für die Sie eine Aktion ausführen möchten. Der URI identifiziert die Ressource, an der Sie interessiert sind, und Sie würden normalerweise die HTTP-Verben verwenden, um anzugeben, was Sie mit dieser Ressource tun möchten.
In Ihrem speziellen Fall haben alle Ihre Methoden das Wort 'get' im Namen. Sie sollten das in der HTTP-Anforderung verwendete Verb ändern, um anzugeben, dass Sie die an diesem Speicherort verfügbare Ressource abrufen möchten.
Ihr URI-Schema sollte die logische Hierarchie der Ressourcen darstellen, die Sie den Benutzern Ihrer API zur Verfügung stellen möchten. In Ihrem Fall würde ich also in Betracht ziehen, etwas
/api/products?category=sliders
zu verwenden, um Ihre Produktsammlung herauszufiltern. Dies bedeutet, dass Kunden, die alle Ihre Produkte erhalten möchten, die Abfragezeichenfolge einfach weglassen können.quelle
url
für API, aber die Anforderung an verschiedene Ressourcen sollte mithilfe von Query String erfolgen? Überprüfen Sie dies auch .keep-alive
wenn Sie Funktionen wie " Arent" verwenden, wird dies nicht vollständig beseitigt.questions
Sie die URI zu sehen ist/questions
, wenn Sie auf eine Ihrer Lieblings - Tags klicken, wird der URI/questions/tagged/<tagname>