Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak napisać serwer RESTowy?
Forum PHP.pl > Forum > PHP
kolusek
Witam.
Chcę napisać serwer REST (RESTful). Przejrzałem już oczywiście google, ale rozwiązania jakie tam znalazłem opisują tylko początek przygody z programowaniem serwerów REST'owych.

Czy widział ktoś z Was gdzieś jakiś dobry opis jak to zrobić? Jaki framework najlepiej użyć? Przyznam, że do tej pory brałem pod uwagę Zenda. Jestem na etapie takim, że powiedzmy mam serwer obsługujący requesty typu:
http://serwerrest/kontroler/akcja?method=s...amp;name=Jasiek
i to zwraca jakiegoś XLM'a.

Niestety nie wiem jak zrobić, żeby moc wysyłać żądania typu:
GET/POST/PUT/DELETE http://serwerrest/kontroler/akcja/sayHello/Jasiek
Niby to htaccess'y ale jak obsłużyć typ żądania (GET/POST/PUT/DELETE)?

No i co z autoryzacją? Jak powinno się takową zrobić? Czytałem, o OAuth 2.0, ale obawiam się, że może to być zbyt skomplikowane jak na moją prostą aplikację. Jakie są inne sposoby autoryzacji?

Jeśli ktoś ma doświadczenie w programowaniu takich rzeczy to proszę o jakieś namiary na tutoriale, przeznaczone do tego frameworki (najchętniej oczywiście PHP'owe), linki, ebooki, sposoby autoryzacji czy cokolwiek co mogło by mi pomóc ruszyć dalej z tematem.

Z góry dzięki, pozdrawiam!
CuteOne
luknij do kodu Piwika http://piwik.org/ masz tam pełną obsługę żądań i przy odrobinie pracy powinieneś przenieść potrzebne metody do swojego projektu

ps. korzysta z Zenda winksmiley.jpg
Mephistofeles
Symfony ma architekturę podobną do REST, w CRUDach używa PUT, DELETE itd., autoryzacja to kwestia filtra. Do tego oczywiście natywna obsługa wielu formatów, jest tutorial.
kolusek
Cytat(Mephistofeles @ 5.12.2010, 10:28:37 ) *
autoryzacja to kwestia filtra


dzięki za odpowiedzi! smile.gif
macie może jakieś linki do materiałów, gdzie jest dobrze opisana autoryzacja i uwierzytelnienie w serwisach restowych? bo chyba trzymanie sesji to nie bardzo w tego typu rozwiazaniach? a jak wygląda sprawa z requestami typu POST? rozwiazuje sie to za pomoca cross domain czy sa jakies inne lepsze sposoby?
aart3k
Pracowałem z dużą ilością API "społecznościowych" - facebook, twitter, google, youtube itd - wszyscy używają OAuth.

Z perspektywy klienta:
OAuth 1 jest dosyć skomplikowany w obsłudze (mi sprawił trochę bólu głowy), ale jak zrobisz dobrą dokumentację, tutorial z wykorzystaniem Zend_Oauth to powinno dać radę. Gotową implementację serwera znajdziesz.
OAuth 2 wydaje się bardziej przyjazny, z tym że tutaj musiałbyś mieć wykupiony certyfikat SSL.

OAuth jest autoryzacją tokenową i daje uprawnienia np. Tobie jako developerowi publikowania na ścianie facebookowej, po tym jak użytkownik z fb autoryzuje Twoją aplikację.
Sam dostęp do API - zależy tak naprawdę co chcesz w nim oferować - nie ma sensu opierać o OAuth, tylko jakiśtam apikey, sprawdzany przy każdym odpytaniu serwera.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.