Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Początki z pisaniem API
marekm10
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 23.10.2016

Ostrzeżenie: (0%)
-----


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.

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ąć) (IMG:style_emoticons/default/smile.gif)

Z góry dziękuję za każdą pomoc, jest to dla mnie bardzo ważne.
Pozdrawiam, Marek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


  1. Tak, to jest dobry pomysł, choć nie jestem pewien czy od tego bym zaczynał. Możesz w ten sposób pominąć etap zrozumienia jakie zalety ma oddzielenie API. Jest to jednak właściwy kierunek tworzenia aplikacji internetowych moim zdaniem. Warto zrozumieć jak działa HTTP, wtedy wszystko zaczyna się układać w całość. Klient Guzzle, i jemu podobne, po prostu wysyłają zapytania HTTP i otrzymują odpowiedzi. Możesz dzięki temu czytać zewnętrzne API.
  2. Tak, framework Slim jest w porządku.
  3. ORM bardzo ułatwia korzystanie z bazy danych, Twój kod będzie ładniejszy. PDO to podejście o niższym poziomie abstrakcji. Też zadziała, ale będzie mniej elastyczne i bardziej upierdliwe. Osobiście używam głównie Eloquenta i sobie chwalę.
  4. Oczywiście, jest taka możliwość. Nie jest to jednak temat do przedstawienia w dwóch zdaniach. Mówiąc krótko: musisz zabezpieczyć swoje API przez niepowołanym dostępem. Jeśli jest jakikolwiek sposób na odczytanie co znajduje się w requeście, wtedy zabezpieczenie jest konieczne. Jeśli nie ma takiego sposobu, czyli np. łączysz się ze swoim API po stronie serwera, wtedy wystarczy np. prosty klucz API.
  5. Tak, mam wskazówkę - zrozum dlaczego, jak i po co. Ogarnij protokół HTTP - metody, statusy, nagłówki, formaty danych. Wtedy temat przestanie być dla Ciebie czarną magią.


Nie ma za co, Marku (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 22:20