Package Exports
- @odata/client
- @odata/client/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@odata/client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
OData Client
Javascript OData Client for OData (v2/v4) Service.
Installation
npm i -S @odata/clientAlternative, in native browser environment, just add unpkg or jsdeliver umd link to your page, and the OData object will be available in window.
<script src="https://cdn.jsdelivr.net/npm/@odata/client/lib/odata-client-umd.js"></script>ODataClient
How to use
@odata/client
Start with a simple query, following code start a GET http request, and asks the server to respond to all customers which phone number equals 030-0074321
import { OData } from "@odata/client"
// import "@odata/client/lib/polyfill" // server side polyfill
// odata.org sample odata service
const serviceEndpoint = "https://services.odata.org/V2/Northwind/Northwind.svc/"
const client = OData.New({ serviceEndpoint })
const runner = async () => {
// Query by filter
//
// GET /Customers?$format=json&$filter=Phone eq '030-0074321'
const filter = client.newFilter().property("Phone").eq("030-0074321");
// just an example, suggest to use the EntitySet API
const result = await client.newRequest({ // ODataRequest object
collection: "Customers", // entity set
params: client.newParam().filter(filter) // odata param
})
}// OData V4 client
const client = OData.New4({ serviceEndpoint: "https://odata-v4-demo-001.herokuapp.com/odata/" })SystemQueryOption
use SystemQueryOption to control response size, element projection and order
ODataFilter
use the ODataFilter to filter data
EntitySet
use EntitySet to perform CRUD on a specific entity
Batch requests
use odata $batch api for operating multi entities in single HTTP request, it will save a lot of time between client & server (In the case of processing a large number of requests).
Advanced
some advanced topics
- literal in uri
- request interpreter
- server side polyfill
