Neptunium, Promethium, Manganese

    thelenilson-odata-v4-mysql
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.11 • Public • Published

    OData V4 Service modules - MySQL Connector

    Service OData v4 requests from a MySQL data store.

    Synopsis

    The OData V4 MySQL Connector provides functionality to convert the various types of OData segments into SQL query statements, that you can execute over a MySQL database.

    Potential usage scenarios

    • Create high speed, standard compliant data sharing APIs

    Usage as server - TypeScript

    import { createFilter } from 'odata-v4-mysql'
     
    //example request:  GET /api/Users?$filter=Id eq 42
    app.get("/api/Users", (req: Request, res: Response) => {
        const filter = createFilter(req.query.$filter);
        // connection instance from mysql module
        connection.query(`SELECT * FROM Users WHERE ${filter.where}`, filter.parameters, function(err, data){
            res.json({
             '@odata.context': req.protocol + '://' + req.get('host') + '/api/$metadata#Users',
             value: data
            });
        });
    });

    Advanced TypeScript example available here.

    Usage ES5

    var createFilter = require('odata-v4-mysql').createFilter;
     
    app.get("/api/Users", function(req, res) {
        var filter = createFilter(req.query.$filter);
        // connection instance from mysql module
        connection.query(filter.from("Users"), filter.parameters, function(err, data){
            res.json({
             '@odata.context': req.protocol + '://' + req.get('host') + '/api/$metadata#Users',
             value: data
            });
        });
    })

    Supported OData segments

    • $filter
    • $select
    • $skip
    • $top
    • $orderby
    • $expand

    Keywords

    Install

    npm i thelenilson-odata-v4-mysql

    DownloadsWeekly Downloads

    2

    Version

    0.1.11

    License

    MIT

    Unpacked Size

    444 kB

    Total Files

    17

    Last publish

    Collaborators

    • lnlwd