Code Monkey home page Code Monkey logo

odata-v4-service-metadata's Introduction

OData V4 Service Metadata Document

Using this module you can generate a service metadata document response from a simple JSON format, an advanced schema JSON format or an Edmx instance created with odata-v4-metadata.

Basic usage

Use the simple JSON format and convert your metadata JSON to a service metadata document.

var ServiceMetadata = require('odata-v4-service-metadata').ServiceMetadata;

// $metadata express.js route
app.get('/odata/\\$metadata', ServiceMetadata.defineEntities({
    namespace: 'Default',
    containerName: 'Container',
    entities: [
        {
            name: 'Kitten',
            collectionName: 'Kittens',
            keys: ['Id'],
            computedKey: true,
            properties: {
                Id: 'Edm.String',
                Name: 'Edm.String',
                Age: 'Edm.Int32',
                Lives: 'Edm.Int32',
                Owner: 'Edm.String'
            },
            annotations:[
                { name: 'UI.DisplayName', value: 'Meww' },
                { property: 'Id', name: 'UI.ReadOnly', value: 'true' },
                { property: 'Title', name: 'UI.DisplayName', value: 'Meww Meww' },
            ]
        }
    ]
}).requestHandler());

Advanced usage

Use a schema JSON, which is more verbose, but you can customize the metadata in a more advanced way.

var ServiceMetadata = require('odata-v4-service-metadata').ServiceMetadata;
var schema = require('./schema');
var serviceMetadata = ServiceMetadata.processMetadataJson(schema);
var serviceMetadataDocument = serviceMetadata.document();

An example schema JSON looks like this

odata-v4-service-metadata's People

Contributors

lazarv avatar borzav avatar slajher avatar

Stargazers

Luiz Carlos Pedroso Gomes avatar Ilias Ktn avatar Charlie Zheng avatar Meli avatar  avatar Jelmer Veen avatar Savino Basanisi avatar Ever avatar Sal Rahman avatar  avatar Kesha Stickland avatar

Watchers

James Cloos avatar Robert Bonay avatar  avatar  avatar Hajnalics (Hajni Battancs) avatar Peter Aron Zentai avatar  avatar Matteo avatar  avatar  avatar

odata-v4-service-metadata's Issues

Declaring NavigationPropertyBinding EntitySet in JSON schema does not produce desired $metadata.xml output

Having declared:

"entityType" : [
{
    "name" : "ParentType",
    "navigationProperty": {
        "name": "Child",
        "type": "ChildType"
    }...
}

and then:

"entitySet": [
    {
        "navigationPropertyBinding": [
            {
                "path": "Child",
                "target": "Children"
            }
        ],
        "name": "Parents",
        "entityType": "ParentType"
    }....

the $metadata XML that gets created contains:

<NavigationProperty Name="Child" Type="ChildType"/> 

in EntityType section however, the following "NavigationPropertyBinding" information is missing but seems to be required in such situation according to OData specs.

<EntitySet Name="PArents" EntityType="ParentType">
       <NavigationPropertyBinding Path="Child" Target="Children">
        </NavigationPropertyBinding>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.