https://github.com/coveooss/odataclient
https://github.com/coveooss/odataclient
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/coveooss/odataclient
- Owner: coveooss
- License: mit
- Created: 2018-02-08T17:19:25.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-24T17:37:13.000Z (9 months ago)
- Last Synced: 2025-03-14T16:15:41.313Z (3 months ago)
- Language: TypeScript
- Size: 29.3 KB
- Stars: 1
- Watchers: 7
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# coveo-odata
[](https://travis-ci.org/coveo/odataclient)
[](https://www.bithound.io/github/coveo/odataclient)
[](https://www.bithound.io/github/coveo/odataclient/master/dependencies/npm)
[](https://www.bithound.io/github/coveo/odataclient/master/dependencies/npm)
[](https://www.npmjs.com/package/odataclient)Typescript OData client destined to be run in browsers. Highly inspired from [o.js](https://github.com/janhommes/o.js) and [odata-client](https://github.com/kanthoney/odata-client).
## Usage
### Initialization
```typescript
const client = new OData({
endpoint: "https://contoso.crm.dynamics.com/",
headers: [
{ name: "Content-Type", value: "application/json" },
{ name: "Accept", value: "application/json" },
{ name: "OData-MaxVersion", value: "4.0" },
{ name: "OData-Version", value: "4.0" }
]
});
```Initializes the client on the endpoint `https://contoso.crm.dynamics.com/`.
### Resource
```typescript
client
.resource("api/data")
.resource("v9.0")
.resource("accounts");
```Configures the client to point toward `https://contoso.crm.dynamics.com/api/data/v9.0/accounts`.
### Query Options
```typescript
client
.filter("name eq 'Fourth Coffee'")
.select(["name", "accountnumber"]);
```Adds the query options `?$filter=name eq 'Fourth Coffee'&$select=name,accountnumber`. Also supports `count`, `orderby`, `top` query options, among others.
### GET, POST, etc.
```typescript
client1.get();client2.post(data);
```### Sending a Query
```typescript
client.build();
```Launches an HTTP request and returns a `Promise` where T is the expected type of the response object.
### Full example
### Sending a Query
```typescript
interface IAccount {
accountnumber: string;
name: string;
}client
.resource("accounts")
.select(["name", "accountnumber"]);
.build>()
.then(accounts => accounts.value.forEach(account => console.log(account.name)));
```## Install
```sh
npm install coveo-odata
```
> The project is at its early stages, some components can still have _lots_ of breaking changes between versions.### Building
Make sure you have Node JS and NPM installed.
Run `npm install` to get the required dependencies and build the library.### Running the tests suite
Run `npm test` to run all tests and get the code coverage!## Contributing
1. Search the issues, if it is not already there, add one.
2. Fork the repository
3. Code Code Code
4. Submit a pull request
5. Wait for some nice guy to review and merge## License
Coveo-odata is distributed under [MIT license](LICENSE).