Wpis z mikrobloga

#php #symfony #programowanie
chce się nauczyć robić dobre API w Symfony, powinienem to robić poprzez Api Platform, teraz tego się używa do tworzenia API? Czy bardziej się robi Kontrollery i routing ? Nie miałem styczności z Api platform i nie wiem czy komercyjnie firmy tego używają, czy to jest niepotrzebny bajer
  • 10
  • Odpowiedz
@zyjdajzyc1: API Platform to świetne narzędzie. Masz w zestawie cały komplet narzędzi potrzebnych do tworzenia dobrego api. Od razu możesz sprawdzić dobre praktyki.
W API Platform tez czasami trzeba stworzyć coś ręcznie. Wtedy masz te kontrolery.

Nadaje się zarówno do dużych projektów i małych zleceń.
Z API Platform korzysta np.
  • Odpowiedz
@lojawyk: api platform działa do momentu aż nie robi się czegoś bardziej złożonego a wtedy to droga przez mękę i ten teoretycznie zaoszczędzony czas przepalasz na robienie chorych workaround by proste rzeczy modyfikować

zresztą wystarczy poczytać na: https://stackoverflow.com/questions/56589694/how-to-write-custom-endpoints-with-parameters-not-related-to-any-specific-entity
https://stackoverflow.com/questions/54823044/api-platformsymfony-4-how-to-add-an-endpoint-in-swagger-openapi
  • Odpowiedz
@zyjdajzyc1: Oba podejścia są poprawne. ApiPlatform tak jak napisał @Jaslanin potrafi niejednokrotnie uprzykrzyć pracę, z drugiej strony wypluwa gotowe openapi, jsonld i inne bajery, także warto znać oba podejścia, patrząc po ofertach coraz więcej firm decyduje się na apiplatform, ale myślę, że wciąż większość projektów to API w czystym Symfony
  • Odpowiedz
Tak jak @Jaslanin napisał.

Jak robiłem pierwszy projekt w #apiplatform to po 2 dniach już go kochałem, po tygodniu już nienawidziłem xD

Mega fajny jak klient nie potrzebuje niczego niestandardowego. Totalny sajgon jeśli klient będzie bezkompromisowo chciał wszystko po swojemu.
  • Odpowiedz
@Jaslanin: Nie musisz korzystać z adnotacji. Właściwie tak robiłem tylko w typowych szybkich fuchach.
Na produkcji raczej mało kto korzysta z samych adnotacji.

Właściwie to wszędzie, gdzie widziałem to był yaml lub xml.
Tak jak już wspomniałem przykładem open source z wysoką jakością kodu jest Sylius. Tam jest xml.
Dokumentacja nie jest jeszcze w pełni gotowa (częsty przypadkek w środowisku symfony). Tutaj masz
  • Odpowiedz
@nowiutki: problem tu jest taki że jak klient płaci za soft szyty na miarę, to od strony sprzedaży potem jak mu powiesz że tego czy tamtego się nie da lub przepali się na to worek forsy to Cię uzna że w tej plantacji oprogramowania robią debile i powie sajonara

@lojawyk upload plików nie jest problemem :-) tam jest rekomendacja żeby pliki uploadować enkodując base64 po stornie js, i dopiero wysyłać zakodowany:
  • Odpowiedz
@Jaslanin: Przecież klient nie płaci za to, że użyłeś API Platform. Masz spełnić pewne biznesowe potrzeby i je spełniasz. Tak samo klient ma gdzieś, czy użyjesz PHP, Go, Springa, Symfony, czy Laravel. Z punku widzenia klienta to nic nie znaczy. Liczy się spełnienie potrzeb biznesowych. Tak jak pisałem. Użycie API Platform w żadne sposób nie ogranicza pisania własnego rozwiązania. Potrzebujesz napisać upload plików tak jak chcesz, to go po prostu piszesz. Masz custom controller i obsługujesz wszystko jak tylko zapragniesz, a cruda robisz dalej szybko.

Jeśli projekt to nie mikro skala, to zaraz i tak będziesz pisał to samo i szybko dochodzisz do tych samych konkluzji, co twórcy api platform. Serializacja może być centralizowana, eventy mogą praktycznie całkowicie odchudzić kontrolery itd.

W kilku ostatnich projektach korzystałem z API Platform i największy problem z jego użycie mieli ludzie, co całe życie spędzili w dokładnie Symfony i pamiętają jeszcze wersję 2.
Każdy projekt, który nie korzystał z API Platform próbował wdrożyć na około dokładnie te same rozwiązania, które występują w
  • Odpowiedz
  • 0
@lojawyk @szubke @Jaslanin @inxsswm @nowiutki
Panowie a macie jakieś dobre tutki do tworzenia API w normalnym stylu tzn bez APi Platform?? Do API Platform jest bardzo dobry kurs na symfony, który własnie przerabiam. Ale nie mogę znaleźć tutków do robienia api w normalny sposób.
Mam problem ponieważ jak korzystałem z Laravela bądź Symfony to były to tworzyłem platformy całościowe, tzn front też robiłem w blade/twig. Nie robiłem
  • Odpowiedz
Ale nie mogę znaleźć tutków do robienia api w normalny sposób.


@zyjdajzyc1: Wpisz "symfony rest api tutorial" w google, daje calkiem sporo wynikow. Zacznij od czytania dokumentacji Symfony, REST to tylko inny port aplikacji. Warto zapoznac sie przy okazji z zasadami Richardson Maturity Model i RESTful.
  • Odpowiedz