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.
1. 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?
2. 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.
3. 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.
4. 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ć.
5. 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ą pomoc, jest to dla mnie bardzo ważne.
Pozdrawiam, Marek