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
@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. Sylius.

Najbardziej negatywnie o API Platform wypowiadają się starzy programiści, co nie chcą uczyć się niczego nowego, piszą gówniane api niezgodne
@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
https://stackoverflow.com/questions/64744246/operation-without-entity
https://stackoverflow.com/questions/56478759/how-to-save-a-nested-relation-with-entity-on-api-platform
https://stackoverflow.com/questions/tagged/api-platform.com

też jest ciężko zrobić upload plików, a potem przypisywać wiele plików do jednej encji przy pomocy jednego requestu, wg api platform jedyna opcja to dodawanie plików pojdedynczo

dobre so
@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
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.
@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 OpenApi https://master.demo.sylius.com/api/v2/docs.

Sporo tych pytań to różne podstawy
@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:
@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.
@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 jeszcze typowo API w komercji
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.