Czym różni się oData od usługi REST?

15

Zamierzam napisać interfejs API usługi sieci Web i myślę o utworzeniu usługi REST. Co w tym kontekście oznacza OData? Czy możesz wyjaśnić różnicę między OData a REST?

Gyurisc
źródło
patrz: odata.org
NoChance

Odpowiedzi:

11

REST to architektura umożliwiająca wysyłanie wiadomości w obie strony z klienta na serwer za pomocą protokołu HTTP. OData to standard wspierany przez Microsoft, który wykorzystuje architekturę REST do wysyłania określonych rodzajów wiadomości przez HTTP. OData mówi o tym, jak wyglądają wiadomości (treść). REST jest architekturą tego, jak te wiadomości są wysyłane tam iz powrotem.

RationalGeek
źródło
5

Zgadzam się zarówno z @jkohlhepp, jak i @Tom Squires, ale dodam kilka szczegółów.

OData to otwarty standard (opracowany przez Microsoft, ale przyjęty poza Microsoft i dostępny na wiele platform, w tym iOS i Android).

Ładunki OData są oparte na formacie Atom (odczyt) i AtomPub (aktualizacja). (Nawiasem mówiąc, Atom jest również podstawą popularnego formatu kanału RSS.) Atom jest rozszerzalny, a OData wykorzystał to do stworzenia dobrze znanych rozszerzeń. Na przykład w przypadku usługi OData istnieją konwencje URI z wieloma funkcjami, takimi jak filtrowanie (filtrowanie według daty lub nazwy klienta) oraz sortowanie i tak dalej. Używanie tych specjalnych konwencji w standardowy sposób (zdefiniowany przez OData) sprawia, że ​​OData jest potężny, ponieważ działają one podobnie i możemy budować narzędzia, które działają przeciwko nim i tak dalej.

Dostępnych jest kilka dobrze znanych źródeł OData, takich jak Netflix (wszystkie ich dane filmowe są tam - z nimi można bawić się dobrze!).

Przeczytaj wszystko o OData na stronie odata.org .

Powodzenia! -Rachunek

codingoutloud
źródło
4

REST to architektoniczny styl budowania usług sieciowych. To tylko model, który mówi, że możesz użyć HTTP i jego czasowników (POST / PUT / GET itp.) Do wykonania CRUD na zasobach ujawnionych przez twoje Usługi. Ale REST nie ma żadnych szczegółów na temat tego, jak powinny wyglądać adresy URL, jak powinny wyglądać formaty żądań / odpowiedzi, jak zapytać o informacje lub na poziomie podstawowym, jakie operacje i zasoby obsługuje usługa!

W świecie usług internetowych opartych na XML mamy SOAP, WSDL, WS- *, które określają standardy, które umożliwiają interoperacyjność różnych usług i ich klientów.

OData próbuje to zrobić dla usług internetowych opartych na REST.

Definiuje metadane $ w formacie CSDL, aby wyjaśnić, jakie typy (encja / kompleks) są obsługiwane przez twoją usługę i ich właściwości, ich typy danych, w jaki sposób powiązane są twoje typy i czy twoja usługa obsługuje także pewne operacje specjalne poza tradycyjnym CRUD.

OData standaryzuje formaty URL dla twoich zasobów, a mianowicie: / Entity, / Entity ('id') lub / Entity (key1 = wartość1, key2 = wartość2) ... i tak dalej ...

OData standaryzuje formaty żądania / odpowiedzi w JSON i AtomXml na temat struktury danych i ich metadanych.

OData określa również bardzo bogaty język zapytań, który umożliwia konsumentom sprawdzanie Twoich usług w celu uzyskania dokładnych informacji, których szukają - za pomocą $ filter, $ orderby, $ skip, $ top, $ expand.

OData pomaga w opisaniu całego modelu danych - encji i ich relacji oraz wspiera wszelkiego rodzaju operacje, takie jak TWORZENIE, AKTUALIZACJA, USUŃ, POBIERZ, POŁĄCZ, a nawet OPERACJE NIESTANDARDOWE na tych jednostkach i / lub relacjach.

OData v4 jest teraz standardem OASIS, który zawiera wiele ulepszeń w stosunku do swoich wcześniejszych wersji. Ekosystem OData powoli rośnie.

Anil G.
źródło
2

OData jest standardem implementowanym przy użyciu REST.

Tom Squires
źródło