Staram się zrozumieć sens Odaty i kiedy ma to sens. W tej chwili działam za pomocą kontrolera ASP.NET i MVC / WebApi do serializacji / deserializacji obiektów do JSON i mam do tego javascript.
Z tego, co mogę powiedzieć, zaletą OData jest możliwość zapytania bezpośrednio z adresu URL ... Ale ponieważ piszę kod klienta i serwera, nie ma takiej potrzeby.
Czy ktokolwiek kiedykolwiek przeanalizuje wyniki zapytania ODaya w javascript?
Może OData jest bardziej na temat zapewnienia ogólnego punktu końcowego dla WSZYSTKICH klientów, aby uzyskać szczegółowe informacje z zapytania, którego JSON nie udostępnia? Więc jeśli byłem dostawcą danych, to przypuszczam, że po to jest odata?
Pomóż mi zrozumieć cel i zastosowanie REST / JSON / ODATA.
javascript
rest
json
punkouter
źródło
źródło
Odpowiedzi:
JSON to po prostu format wymiany danych oparty na JavaScript.
REST jest stylem architektury, podczas gdy OData jest specyficzną implementacją REST zaprojektowaną do generowania i zużycia danych, która obsługuje dwa formaty: AtomPub i JSON.
Tak więc różnica między JSON ze zwykłym REST i OData to opcje OData do manipulacji danymi, np. Jeśli kwerendujemy dane za pomocą protokołu OData, możemy określić poniższe opcje w URI,
Możemy wykonać projekcję, połączyć zasoby itp., A wszystkie te opcje są dostępne od razu po wyjęciu z pudełka. Teraz wyobraź sobie, że gdybyśmy musieli zapewnić wszystkie te funkcje w naszej własnej usłudze REST, musielibyśmy,
To nie tylko dużo pracy, ale także prowadzi do niespójności i tworzy krzywą uczenia się dla naszych konsumentów danych.
źródło
JSON lub JavaScript Object Notation to jedynie format lub standard danych. Jest to uzgodniony format przesyłania czegoś takiego jak nazwa logowania LUB coś, co musi zostać zużyte przez usługę REST.
Zobacz tę część: http://en.wikipedia.org/wiki/JSON
Nie jest to część konkretnego języka programowania, więc różne systemy mogą dość łatwo przekazywać dane, jeśli wiedzą, że używają JSON.
Jeśli chodzi o REST, jest to po prostu styl architektury używany w usługach sieciowych.
Zobacz tę część: http://en.wikipedia.org/wiki/Representational_state_transfer
Jednym ze sposobów, aby o tym pomyśleć, jest napisanie usługi internetowej, z którą wiele różnych komputerów może rozmawiać i wymieniać informacje. Możesz napisać swoją usługę internetową, aby akceptować dane za pośrednictwem adresu URL
Odpowiedź może być obiektem JSON sygnalizującym otrzymanie danych.
Nigdy nie słyszałem o OData, więc googlowałem:
Wygląda na to, że OData jest czymś napisanym w celu ulepszenia waniliowej architektury REST .. Ale wygląda na to, że może dać ci kilka dodatkowych rzeczy, które pomogą Ci zacząć, zamiast pisać od zera w C # lub w jakimkolwiek języku, którego używasz.
Jeśli Twoja praca zmusza Cię do korzystania z OData, nadal będziesz używać JSON..Ale w ramach OData / standardu napisanego przez Microsoft i in.
Tak, ponieważ (brzmi jak) używa JSON. Używanie JS byłoby całkowicie naturalne.
Odata zapewniłby usługę REST .. ale z kilkoma dodanymi standardowymi usługami na zwykłym „ogólnym” punkcie końcowym usługi REST .. klienci nie dbają o to, czy korzystasz z OData, czy też uruchamiają własną usługę C # .. tak długo ponieważ odpowiedzi były w uzgodnionym formacie (jak JSON). Jednak w pracy mogą chcieć korzystać z OData, ponieważ zapewnia wiele „gotowych” funkcji.
źródło
W przypadku pytania „dlaczego” istnieje naprawdę dobra definicja w książce RESTful Web APIs - zasadniczo OData implementuje wzorzec kolekcji, gdzie kolekcja jest zasobem, który udostępnia listę zasobów poprzez łącza.
źródło
OData to specyficzna implementacja usługi RESTful ze standardem interfejsu. Zaletą jest to, że ujawniasz interfejs API swojego produktu i mówisz, że jest on zgodny ze standardem OData, ponieważ użytkownicy, którzy znają już OData, mogą z niego łatwo korzystać bez poświęcania dużo czasu na czytanie dokumentacji API.
Wada: Chociaż OData doskonale ujawnia bazową bazę danych, specyfikacja nie obejmuje obsługi transakcji i nie może być stosowana w aplikacjach, w których możemy mieć usługę RESTful służącą zarówno jako interfejs DB, jak i interfejs transakcji.
źródło