This is the first episode of a new series where we explore fundamental building blocks together. We're looking at OData. Everyone welcome, especially beginners! Head over to our discussion thread on OData here https://groups.community.sap.com/t5/coffee-corner/back-to-basics-odata-your-thoughts-comments-and-questions/td-p/4583
Topics:
OData, REST, HTTP, GraphQL, Northwind, RAP, CAP, CDS, XML, ATOM, RSS, OASIS, curl, fx
Links:
Sample OData services https://services.odata.org
OData with CAP https://cap.cloud.sap/docs/advanced/odata
Take a Deep Dive into OData mission https://developers.sap.com/mission.scp-3-odata.html
Sample OData service and UI5 app https://github.com/SAP-samples/odata-basics-handsonsapdev
2-minutes-of API Basics playlist https://www.youtube.com/playlist?list=PL6RpkC85SLQBCAZNbi-vNMSoXZJZp5wDq
Monday morning thoughts: OData https://blogs.sap.com/2018/08/20/monday-morning-thoughts-odata/
OData Specs analysis https://github.com/qmacro/odata-specs
Blog feed at qmacro.org https://qmacro.org/feed.xml
XML Tree extension for Chrome https://chrome.google.com/webstore/detail/xml-tree/gbammbheopgpmaagmckhpjbfgdfkpadb?hl=en
Chapters:
00:00 Welcome and introduction
08:20 Sharing the repo https://github.com/SAP-samples/odata-basics-handsonsapdev
11:20 Some conversation on REST vs GraphQL and also gRPC
14:50 More conversation on ABAP, RAP, CAP and CDS
17:10 Even more conversation on REST vs SOAP
23:40 Plenty of resources for newcomers to ABAP and RAP
24:55 Talking about REST APIs vs OData
28:00 Setting up the repo and OData service in VS Code
29:55 Thinking about the origins of OData
34:00 Looking at a the OData service definition in the repo
35:43 Viewing some sample OData services including Northwind
36:22 Completely random digression on the names Acme and Zenith
37:57 Consuming resources and Cross-Origin Resource Sharing (CORS)
38:55 Is it possible to get OData metadata in JSON?
40:15 Staring for a bit at the OData service document
41:10 Understanding the history & structure of OData standards documents
46:50 The two well-known resources in any OData service
47:25 Comparing OData V2 with its Atom origins (Feed and Entry elements)
50:00 Looking at the XML based metadata (with the XML Tree extension), with EntityTypes and EntitySets ("collections"), Properties and Navigation Properties
56:40 Considering the XML representation of an OData V2 resource (an EntitySet)
58:02 Using the $format System Query Option to request JSON
59:00 Looking at HTTP content negotiation (with the Accept and Content-Type headers)
1:00:40 Using content negotiation to request a JSON representation of the resource