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%)
|
W mojej bibliotece działasz na QueryBuilder, zapytanie tworzysz normalnie tylko pomijasz etap pobrania wyników, biblioteka sama dokleja potrzebne warunki i pobiera wyniki:
W Twoim przykładzie trochę średnio zrozumiałem problem z limit, jeśli wpierw pobierasz wszystkie rekordy, a dopiero potem chcesz przycinać wyniki to jest to strasznie niewydajne, dlatego konieczne jest operowanie w przypadku parametru limit na QueryBuilder. Ale bardzo ciekawe jest to co tu piszesz, może zainpiruję się Twoimi przemyśleniami i w przyszłości zrobię wersję która pokrywa więcej przypadków użycia, póki co jest ściśle dopasowana pod moje wymagania (IMG:style_emoticons/default/smile.gif) |
|
|
|
markonix [LR] Budowanie API 26.11.2017, 02:19:47
r4xz Polecam po prostu zapoznać się z panującymi standa... 26.11.2017, 09:16:15
markonix Twoja biblioteka właśnie jest czymś czego szukam, ... 26.11.2017, 16:50:10
r4xz Nie, niestety nie widziałem podobnej biblioteki, r... 26.11.2017, 17:12:53
markonix A jak Twoja biblioteka sobie radzi z L5.5? 26.11.2017, 17:28:08
r4xz Raczej nie powinno być problemów, prawdę mówiąc pa... 26.11.2017, 17:45:52
markonix Tak więc ostatecznie skorzystałem z Dingo, ma on t... 16.12.2017, 00:45:00
markonix O limitowanie mi chodzi o to, że w tym moim repozy... 16.12.2017, 17:09:08 
r4xz Cytat(markonix @ 16.12.2017, 17:09:08... 17.12.2017, 10:49:56 
markonix Cytat(r4xz @ 17.12.2017, 10:49:56 ) T... 17.12.2017, 18:50:36
Pyton_000 A ja tak z innej beczki trochę skoro już o api mow... 17.12.2017, 11:07:04 ![]() ![]() |
|
Aktualny czas: 11.10.2025 - 17:06 |