npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@sap/xsodata

v8.2.0

Published

Expose data from a HANA database as OData V2 service with help of .xsodata files.

Downloads

3,776

Readme

XSODATA

Expose data from HANA database artifacts like tables or views as OData V2 service with the help of .xsodata service definition files. Starting from version 8.1.1 - XSODATA is supported only with @sap/async-xsjs library. @sap/xsjs is deprecated and no new versions will be released. see CHANGELOG

Note: XSOData was developed to provide XS Classic users using XSOData the possibility to migrate to XS Advanced on node.js. This library contains nearly the same feature set as XSOData provided on SAP HANA XS Classic. This module is already in maintenance mode and it is not planned to extend or enhance it.

  If you want to create new OData services we strongly recommend to use OData V4 along with a generic CDS-OData provider.
  Here you can model your consumption persistency model with CDS (Core Data Services) and expose parts or the complete
  model as OData service. Such a solution is already productively available on the JAVA runtime stack. 
  
  For node.js we also provide an OData V4 solution. The development of the OData V4 node.js Library already started in 2016.
  It is also planned that a generic CDS-Odata provider will be deliverd.

  If you are developing an OData service for SAP Business Technology Platform, it is recommended to move to the SAP Cloud Application Programming Model (CAP).
  The XSODATA solution supports HANA as a service, also support was introduced for SAP HANA Cloud Services from XSODATA v8.0.0 and above.

Usage

  • This module is used in the XSJS/ASYNC-XSJS shim for SAP HANA XSC Engine applications to allow the reuse of .xsodata files from XSC applications on SAP HANA XSA.

  • It can also be used directly in your own nodejs server application. Be aware that you use the same version of the hdb and winston node module version in your application.

Documentation

For documentation see here

Warning

  • In order to restrict the amount of records loaded from the database (to reduce the memory usage) please use the limit setting which can be set in the xsodata file see here
  • The xsodata library CHANGES the TRANSACTION ISOLATION LEVEL on the used database connection
  • The xsodata library CHANGES the SCHEMA on the used database connection
  • The xsodata library uses temporary tables for performance reasons
  • If you manually modify the db-connection/client inside xsodata-application-exits the modifications you have done will not be restored by the xsodata library

So the user of the xsodata library should clean the database connection

Features - Overview

  • Automatic metadata handling based on XSOData definition and HANA db metadata artifacts
  • OData request handling with URI parsing including system query options
  • OData request/response serialization and deserialization
  • Load table records from HANA database via generated SQL queries
  • Calculation view support
  • Batch handling
  • Logging: When the xsjs/async-xsjs application log is enabled then xsodata also writes log information. If, in addition, the environment variable XSODATA_LOG_MEMORY_CONSUMPTION is set to 'true' xsodata writes also memory consumption information to the logs

Supported OData V2 Features:

GET Requests:

  • URI0 = scheme serviceRoot
  • URI1 = scheme serviceRoot "/" entitySet
  • URI2 = scheme serviceRoot "/" entitySet "(" keyPredicate ")"
  • URI6 = scheme serviceRoot "/" entitySet "(" keyPredicate ")/" entityNavProperty
  • URI7 = scheme serviceRoot "/" entitySet "(" keyPredicate ")/$links/" entityNavProperty
  • URI8 = scheme serviceRoot "/$metadata"
  • URI9 = scheme serviceRoot "/$batch"
  • URI15 = scheme serviceRoot "/" entitySet count

CreateUpdateDelete Requests:

  • CUD - Entity
  • CUD - Link

System Query options:

  • $top
  • $skip
  • $filter, except for:
    • comparison of navigation properties
  • $orderby, except for:
    • comparison of navigation properties
  • $expand
  • $select
  • $format
    • only json supported
  • $inlinecount

Supported HTTP methods per requests type

Supported XS1 OData features (defined in the XSOData file):

  • Definition of OData schema namespace
  • OData Service exposure
  • Metadata caching
  • Create/update/delete restrictions of OData requests
  • Exposure of table and views (including calculation views) as EntitySet
  • Property Projection: Expose a subset of the table columns as properties of an OData EntityType
  • Automatic OData key generation, e.g. required for aggregated views
  • Simple and complex associations
  • Data aggregation
  • Parameter EntitySets for calculation views
  • ETAG handling
  • Nullable properties
  • Cache Control via cache header
  • Custom exits (JavaScript and SQL Script) for modification and validation requests
  • Custom exits in batch requests
  • Uses only UTF-8
  • Uses "content-type: application/json" for CREATE, UPDATE, DELETE
  • Expose data only via JSON format (ATOM format is not supported)
  • Supported types and type mapping see here
  • Supported XSOData features by OSDL

Note:

Features per HANA DB Artifact

Table

Supports the following Features:

Supported Http Verbs:

  • GET, PUT, POST, DELETE

SQL View

Supports the following Features:

Supported Http Verbs:

  • GET

XS Advanced Calculation View

Supports the following Features:

Supported Http Verbs:

  • GET

Samples