Witam
Uczę się już od jakiegoś czasu PHP, myślę, że znam je całkiem nieźle i stwierdziłem, że nadeszła pora poznać jakiś framework. Mój wybór padł na Slim, ponieważ wydaje się dość mały i nietrudny do zrozumienia. Zacząłem już trochę go poznawać.
Jednocześnie też zacząłem tworzyć sobie mały projekt, który będzie składał się ze strony www i w przyszłości pewnie też aplikacji mobilnych (taki jest plan na daleką przyszłość, jeśli wszystko by wypaliło) - ma to służyć i nauce frameworka i zrobieniu czegoś fajnego. Całość ma być dość mała, żadne rozbudowane rzeczy. Pomyślałem więc, że tutaj dobrym rozwiązaniem będzie zrobienie jakiegoś API, dzięki któremu i strona i aplikacje mobilne będą mogły komunikować się z serwerem. Nie wiem jednak do końca jak zrobić, aby to wszystko miało sens i trzymało się jakiś zasad - to znaczy mam jakiś ogólny pogląd na to, ale nie za bardzo poukładany. Przychodzę więc z kilkoma pytaniami.
- Czy taki pomysł robienia aplikacji tego typu jest dobry? Czy stworzenie takiego API jest dobrym pomysłem? Jak połączyć stronę (która jak rozumiem musi być osobną aplikacją) z takim API, słyszałem kiedyś o czymś takim jak klient Guzzle, czy to by się nadało?
- Czy framework Slim będzie w porządku? Tak, wiem, że są różne i nie da się określić, który to jest dobry a który zły, ale pytam tak ogólnie, czy Slim nadaje się do zrobienia API i jest wart uwagi i nauki? Aplikacja będzie mała, więc chyba ładowanie niczego wielkiego nie ma sensu.
- Czego z frameworka Slim używać do łączenia się z bazą danych? Po prostu zwykłe PDO? Jakiś ORM? Na stronie Slima pokazany jest Eloquent, słyszałem też dużo dobrego o Doctrine, nie wiem co warto wybrać. Przypomnę też, że ma to być dość mały projekt. Baza z jakiej korzystam to MySQL, ewentualnie zastanawiam się nad PostgreSQL.
- Chciałbym, aby skorzystać z takiego API mogły tylko moje aplikacje, nie chciałbym tak aby każdy mógł napisać swoją wersję aplikacji i podpinać pod moje API, czy jest taka możliwość? Słyszałem coś o OAuth, w praktyce jednak nie wiem czy jego użycie ma sens, czy zabezpieczy mnie przed tym i jak dokładnie go użyć.
- Może macie jakieś ogólne wskazówki na temat przygotowywania takiego API? Każda mi się przyda, to będzie pierwsze API jakie będę tworzył (no ale jakoś trzeba przecież zacząć) :)
Z góry dziękuję za każdą nawet najmniejszą pomoc, jest to dla mnie bardzo ważne.
Pozdrawiam, Marek