![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Zabieram się do wystawienia API do istniejącej już aplikacji, API będzie zarówno pod appkę jak i strony www.
Chciałbym aby to było dobre, RESTowe, użyteczne i elastyczne API, a nie kilka sztywnych metod. Jakieś doświadczenia jak zbudować dobre API, z którego byście sami z przyjemnością korzystali? Kilka ważnych aspektów: - autoryzacja - wersjonowanie - spójny format błędów - kontrola nad zwracanymi danymi (zarówno wybór pól jak i relacji) - limitowanie i paginacja - możliwość generowanie zaawansowanych metod typu find, search (szukanie po polach za pomocą różnych warunków, które można użyć w where()) - dokumentacja (generator?) Pod większością względów podoba mi się API wFirmy (system do faktur): https://doc.wfirma.pl/#h2-Komunikacja-h3-Ko...nie-zapyta-find Poza troszkę zagmatwanym formatem danych, zwracanych przez te API i brakiem wersjonowania to jest to dla mnie wzór, który chciałbym osiągnąć. Zastanawiam się czy znajdę gotowy szkielet takiego API czy muszę to implementować wszystko samemu, na poziomie kontrolerów i repozytoriów? W L5.5 jest kilka dodatków typowo pod API np. Responses ale i tak wciąż jest sporo pracy. Ten post edytował markonix 26.11.2017, 02:21:48 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie, niestety nie widziałem podobnej biblioteki, raczej patrzyłem na sposób definiowania GraphQL i zastanawiałem się czemu czegoś podobnego nie można znaleźć dla RESTa, aby tak z automatu mieć obsługę chociaż tych podstawowych rzeczy jak np. parametru fields/only, które mogłoby nawet naiwnie działać w post-processingu i wycinać przed wysłaniem do użytkownika okrojone dane.
Sprawdzam właśnie jak to robią w innych projektach: Cachet - ręczna zabawa, Laravel Horizon - może nie jest to fragment REST API, ale też idzie ręcznie Flarum - https://github.com/tobscure/json-api |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 23:52 |