Czego należy unikać przy ustawianiu interfejsu Restful, aby upewnić się, że nie został on przekształcony w RPC?Restful web services
Odpowiedz
Do:
- Zaprojektuj swój wniosek być hypertext-driven (Hypermedia jako silnik Application państwa - hateoas).
- Poświęć więcej czasu i wysiłku na zidentyfikowanie zasobów i tworzenie typów mediów do ich reprezentowania.
- Pomyśl o całym identyfikatorze URI jako identyfikatorze zasobu i przyjmij, że zmieni się on w przyszłości.
- Zapewnij wszystkie opcje, aby kontynuować przez aplikację jako łącza w swojej reprezentacji.
- Pomyśl o swojej aplikacji jako stronie internetowej, która będzie "przeszukiwana" lub "przeglądana" przez klientów.
- Spróbuj napisać klienta dla swojego interfejsu API i poszukaj, gdzie występuje sprzężenie.
nie:
- Publish szablony URI w dokumentacji API. Jeśli na przykład musisz mieć szablony parametrów zapytania, upewnij się, że są one częścią definicji rodzaju mediów.
- Pomyśl o swojej aplikacji jako kolekcji URI, na którą działają cztery czasowniki.
- Podawać typy mime, takie jak "application/xml" lub "application/json" do klientów.
Aby użyć analogii, interfejs API powinien działać bardziej jak GPS dla klientów, a mniej jak mapa. Będziesz podawać klientom tylko nazwę pobliskiej ulicy.Ale od tej pory mogą robić tylko to, co aplikacja mówi, że mogą zrobić w dowolnym momencie.
Celem tego stylu jest zminimalizowanie sprzężenia między aplikacją a jej klientami. Całe sprzężenie powinno wystąpić w definicji rodzaju nośnika. Upraszcza to rozwój interfejsu API i zapewnia przyjemny mechanizm wersjonowania. Sprawia również, że znikają pytania dotyczące problemów takich jak paginacja.
Większość interfejsów API "RESTful" nie działa zgodnie z tym wzorcem. Jeśli tak, zobacz numer Sun Cloud API i jego backstory.
Dzięki za pomoc w rozpowszechnianiu informacji o REST, dokładnie i wyraźnie. – aehlke
Rodzaj szerokiego pytania, ale spróbuję. Po pierwsze, używaj tylko czasowników HTTP, jak były zamierzone. Nie wysyłaj POST na adres URL z argumentem URL, który w zasadzie zastępuje POST i zmienia go w GET lub DELETE. Tak działa SOAP (wszystko jest POST).
To jest poprawne użycie HTTP - doesn nie ma wiele wspólnego z REST. – aehlke
Skorzystaj z podstawowego protokołu tam, gdzie to możliwe. Zamiast czasowników w twoim ładunku używaj (na przykład) metod HTTP GET, POST, PUT, DELETE. Twój URI powinien opisywać zasób, ale nie to, co z nim zrobić.
To nie ma nic wspólnego z REST! To po prostu HTTP. – aehlke
Po prostu podałem HTTP jako przykład (ponieważ jest to prawdopodobnie najbardziej popularny protokół w tej sytuacji), aby wzmocnić, że identyfikatory URI powinny być wolne od słów. –
Niektóre z rzeczy, które chcesz uniknąć to:
- buforowanie Ignorując
- Tunneling wszystko przez GET (lub alternatywnie POST)
- Ignorując typy MIME
Istnieje dobry artykuł tutaj, który mówi o niektórych wzorcach antyspamowych:
tym artykule szczegółowo pewne decyzje projektowe, które odróżniają RPC z REST:
http://www.pluralsight.com/community/blogs/tewald/archive/2007/04/28/47067.aspx
@ S.Lott: dzięki, szczerze myślałem, że pisał, że jako odpowiedź nie komentarz. Tracę moje marmury.
- 1. Rails 3 RESTful web services z jsonem
- 2. backbone.js Model Sync i C# .net RESTful web services
- 3. Jak zintegrować restful Web Services z Struts 2
- 4. Web Services API Versioning
- 5. Szyfrowanie w C# Web-Services
- 6. Rest Web services zwracające 404
- 7. narzędzia do opracowywania usług sieci Web RESTful
- 8. Opublikuj moją usługę RESTful Web w Internecie
- 9. Erlang Amazon Web Services (AWS) EC2 API
- 10. niestandardowe wyjątki manipulacyjne - Java Web Services
- 11. Amazon Web Services phpMyAdmin: Rozszerzenie mbstring brakuje
- 12. Azure Web API VS Mobile Services
- 13. Usługi Azure Mobile Services a Web API
- 14. WCF v.s. Legacy ASP.Net Web Services
- 15. Usługa sieci Web RESTful generuje automatycznie WADL
- 16. Czy możesz wyjaśnić pojęcie Web RESTful?
- 17. Narzędzie do testowania usług sieci Web RESTful
- 18. Dokumentacja dynamiczna dla usług sieci Web ASP.Net MVC RESTful
- 19. Błąd 401 Dzwoniąc z Web Services Sitefinity WCF
- 20. Nie można pobrać zasobów (pokoi) z Exchange Web Services
- 21. C# .NET Web Services - przekazywanie niestandardowych obiektów do usługi WWW
- 22. Amazon Web Services EC2 do RDS Łączność z VPC
- 23. Java Resting Web Services (jax rs) wzorzec uwierzytelniania
- 24. Ktoś używający Bing Map Web Services z Delphi?
- 25. Co to jest keyName w AWS (Amazon Web Services)?
- 26. Nie można utworzyć poświadczeń usługi Amazon Web Services (AWS).
- 27. Różnica między WCF Web API i WCF Data Services
- 28. Exchange Web Services - Przetwarzanie wiadomości i uzyskiwanie dostępu do załączników
- 29. Jak zrobić stronicowania z Exchange Web Services CalendarView
- 30. Hosting aplikacji CakePHP z Amazon Web Services (EC2 itp.)?
Jeff, nie zaczynaj zdania od czterech spacji - to powie "przecena", aby potraktować je jako blok kodu (bez zawijania słów) i sprawia, że naprawdę trudno go odczytać - z wyjątkiem rzeczywistych bloków kodu, kierunek! :-) –
http://www.pluralsight.com/community/blogs/tewald/archive/2007/04/28/47067.aspx – skaffman
@SLott ... oops .. done – skaffman