Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie API, Jak stworzyć własne API w php o architekturze REST
Rilekt
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 14.03.2013

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


Cześć, męcze się nad stworzeniem api własnej strony. Chodzi mi narazie o proste linki typu http://strona.pl/api/user,1,format,json która zwracałaby użytkownika o id w bazie == 1.
Zadanie dość proste, lecz chcę zrobić to wg architektury REST i zgodnie z wzorcami projektowymi.

- jak pobierać wartośći w linku, które są po przecinku?
- jak "wyrzucać" dane na ekran, jeżeli chcę to mieć w formacie json/xml ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Puszy
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Do RESTa najlepiej mieć napisany router, ewentualnie korzystać z frameworka (raczej rekomendowane). Podziel zapytania na 4 typy, POST do tworzenia, GET do pobierania, PUT do aktualizacji i DELETE do usuwania. W przypadku GET korzystaj z parametrów $_GET, np http://strona.pl/api/user?id=1&format=json. Do reszty korzystasz z $_POST. Wszystko się tak na prawdę opiera na warstwie HTTP, potrzebujesz tylko routera o którym pisałem. Aby wyrzucić dane wystarczy zwykłe echo. Użytkownicy Twojego API będą się komunikować korzystając z CURLa albo Socketów (tak przynajmniej działa podstawowe korzystanie z RESTa w ZF2).

Ten post edytował Puszy 4.07.2017, 11:58:17
Go to the top of the page
+Quote Post
viking
post
Post #3





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


https://apigility.org/documentation/intro/first-rest-service

Generalnie Zend Expressive też bardzo fajnie nadaje się do API.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


/users - zwraca wszystkich userów
/users/1 - zwraca usera ID=1
/users/1/posts - zwraca wszystkie posty usera ID1

itd.

Co do formatu output to dodajesz jako query string: ?format=json ?format=xml

Materiały:
https://github.com/RestCheatSheet/api-cheat...ign-cheat-sheet
https://stackoverflow.com/questions/671118/...ful-programming
Go to the top of the page
+Quote Post
Rilekt
post
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 14.03.2013

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


Cytat(Pyton_000 @ 4.07.2017, 12:58:21 ) *
/users - zwraca wszystkich userów
/users/1 - zwraca usera ID=1
/users/1/posts - zwraca wszystkie posty usera ID1

itd.

Co do formatu output to dodajesz jako query string: ?format=json ?format=xml

Materiały:
https://github.com/RestCheatSheet/api-cheat...ign-cheat-sheet
https://stackoverflow.com/questions/671118/...ful-programming


Dzięki!

Nie będzie to duże API i z jednej strony wykorzystywanie frameworków to może być przerost formy. Z drugiej, ciężko będzie mi samemu napisać router.
Do celów testowych wykorzytuję darmowy hosting strony WWW, uda mi się tam zainstalować jakiś framework? thumbsdownsmileyanim.gif
Go to the top of the page
+Quote Post
Puszy
post
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Framework to w skrócie nic innego jak zbiór gotowych funkcji napisanych w PHP, jeżeli działa Ci zwykłe Hello World, to framework też zadziała. Możesz mieć później tylko problemy przy bardziej zaawansowanym korzystaniu, np. gdy będzies zpotrzebował mb czy też gd2. https://symfony.com/doc/current/reference/requirements.html tutaj znajdziesz wymagania co do Symfony, są niemal żadne. Co do routera, pobranie parametrów to kilka linijek, dopiero później rozdzielanie zadań może powodować błędy ale mimo wszystko będzie to szybsze czasowo rozwiązanie niż nauczenie się od zera frameworka przy założeniu że wiesz jak zastosować taki router napisany przez siebie.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 08:12