OASIS Approves OData 4.0 Standards For an Open, Programmable Web
First time accepted submitter Dilettant writes "The OASIS members approved Version 4 of the OData standards, which now also feature the long requested compact JSON as primary format. OData helps "simplifying data sharing across disparate applications in enterprise, cloud, and mobile devices" through interfacing data sources via a REST like interface."
Look... I have to live with it in my work, okay? But it's anything but fun to work with.
For computer-to-computer data interchange, JSON is not bad. But it's about as human-readable as the Voynich Manuscript.
If (PlatformIndepenentProgrammingRelated == True) And (RelatedToJava == False) {
Good!!!
}
They cracked the code on good web programming standards lol.
An Irish android? How appropriate!
I eat only the real part of complex carbohydrates.
I'm not clear here, isn't that the purpose of TCP/IP?
The world's burning. Moped Jesus spotted on I50. Details at 11.
At the link for the specifications OData JSON Format Version 4.0
The documents that are tagged as Authoritative are .doc, not even .docx
I am Slashdot. Are you Slashdot as well?
What do those whiny bastards have to do with programming standards???
Keep to music, you assholes.
Glancing over the specification it looks like a reincarnation of RDF plus SPARQL for updates. Perhaps a product of Not Invented Here syndrome? I am sure it will end up like most OASIS standards: developed in a bubble by company insiders, introduced as selling points in the next versions of said companies products, rejected by the marketplace due to complexity and lack of adoption, and then ultimately discarded in favor of the next technology fad that purportedly better solves the problem space.
If a nation expects to be ignorant and free, in a state of civilization, it expects what never was and never will be-T J
OData is (now) a standard for how applications can exchange structured data, oriented towards HTTP and statelessness.
OData consumers and producers are language and platform neutral.
In contrast to something like a REST service, for which clients must be specifically authored and the discovery process is done by humans reading an API doc, ODATA specifies a URI convention and a $metadata format that means OData resources are accessed in a uniform way, and that OData endpoints can have their shape/semantics programmatically discovered.
So for instance, if you have entity named Customer hosted on http://foo.com/myOdataFeed, I can issue an HTTP call like this:
GET http://foo.com/myODataFeed/Cus...
and get your customers.
furthermore, the metadata document describing your customer type will live at
foo.com/myODataFeed/$metadata ... which means I can attach to it with a tool and generate proxy code, if I like. It makes it easy to build a generic OData explorer type tool, or for programs like Excel and BI tools to understand what your data exposes.
Suppose that your Customers have have an integer primary key, (which I discovered from reading $metadata), and have a 1:N association to an ORders entity. I can therefore write this query:
GET http://foo.com/myODataFeed/Cus... .. and get back the Orders for just customer ID:1
I can add additional operators to the query string, like $filter or $sort, and data-optimization operators like $expand or $select.
OData allows an arbitrary web service to mimic many of the semantics of a real database, in a technology neutral way, and critically, in a way that is uniform for anonymous callers and programmatically rigorous/discoverable.
Examples of OData v3 content are available here:
http://services.odata.org/V3/N...
OData V4 is a breaking protocol change from V3 and prior versions, but has been accepted as a standard
And, shameless plug: If you want to consume and build OData V1/V2/V3 services easily, check out Visual Studio LightSwitch :)
My opinions are my own, and do not necessarily represent those of my employer.
Know who leads the OData brigade? Microsoft. Get your crying ready, neckbeards.
On a more serious note, OData is awesome. If you've ever tried to provide a good data query API (supporting boolean syntax arbitrary queries) via a web service it's not easy. OData does it very well.
Sure, you'll get some whining from people who don't understand it that it forces you to expose your data model to the outside world, but it does absolutely no such thing. You can, should you choose, expose a complete abstraction layer over your data model. But for a lot of uses it's really easiest to just let Visual Studio do its magic an presto, you have a web service accessible data access layer.
I saw that it's embraced by Blackberry... Nice name-drop! I'm in!
Representational state transfer (REST) is an architectural style consisting of a coordinated set of architectural constraints applied to components, connectors, and data elements, within a distributed hypermedia system. REST ignores the details of component implementation and protocol syntax in order to focus on the roles of components, the constraints upon their interaction with other components, and their interpretation of significant data elements
- from wikipedia
its a framework ?
Sounds neat but doesn't solve my JSON problems.
One project might use "customer" another "client" or "businessname". Each of these may have a "description", "overview", "synopsis" and a "type"/"kind"/"businesstype" field.
So code discovery of data doesn't work unless we have agreed to standardized field names in advance, but now there's always exceptions to look out for and name conflicts.
Now even if we know the names of every field, how do we know exactly what sort of data will be returned? A name alone is nothing unless we can ensure its type, and remove all assumptions about what it can contain.
Cwm, fjord-bank glyphs vext quiz
This is sound eerily familiar...
I suggest you look at the $metadata document for the service I linked to.
The property names, conceptual storage types, relationship info, etc, is all in there.
I'm not sure what problem you're trying to solve, exactly.
My opinions are my own, and do not necessarily represent those of my employer.
One project might use "customer" another "client" or "businessname". Each of these may have a "description", "overview", "synopsis" and a "type"/"kind"/"businesstype" field.
So code discovery of data doesn't work unless we have agreed to standardized field names in advance
Why doesn't it work? Have a look at $metadata. You get schemas for your data. OData has full discovery. The only "standardized field name" you need to know in advance is $metadata.
... but now there's always exceptions to look out for and name conflicts.
Now even if we know the names of every field, how do we know exactly what sort of data will be returned? A name alone is nothing unless we can ensure its type, and remove all assumptions about what it can contain.
OData was originally designed for XML. JSON was added later. With XML you can (and should) use namespaces to disambiguate field names between different entities/domains.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*