UNPKG

apeman-app-rest

Version:
245 lines (183 loc) 6.24 kB
apeman-app-rest ========== <!--- This file is generated by ape-tmpl. Do not update manually. ---> <!-- Badge Start --> <a name="badges"></a> [![Build Status][bd_travis_shield_url]][bd_travis_url] [![Code Climate][bd_codeclimate_shield_url]][bd_codeclimate_url] [![Code Coverage][bd_codeclimate_coverage_shield_url]][bd_codeclimate_url] [![npm Version][bd_npm_shield_url]][bd_npm_url] [![JS Standard][bd_standard_shield_url]][bd_standard_url] [bd_repo_url]: https://github.com/apeman-app-labo/apeman-app-rest [bd_travis_url]: http://travis-ci.org/apeman-app-labo/apeman-app-rest [bd_travis_shield_url]: http://img.shields.io/travis/apeman-app-labo/apeman-app-rest.svg?style=flat [bd_travis_com_url]: http://travis-ci.com/apeman-app-labo/apeman-app-rest [bd_travis_com_shield_url]: https://api.travis-ci.com/apeman-app-labo/apeman-app-rest.svg?token= [bd_license_url]: https://github.com/apeman-app-labo/apeman-app-rest/blob/master/LICENSE [bd_codeclimate_url]: http://codeclimate.com/github/apeman-app-labo/apeman-app-rest [bd_codeclimate_shield_url]: http://img.shields.io/codeclimate/github/apeman-app-labo/apeman-app-rest.svg?style=flat [bd_codeclimate_coverage_shield_url]: http://img.shields.io/codeclimate/coverage/github/apeman-app-labo/apeman-app-rest.svg?style=flat [bd_gemnasium_url]: https://gemnasium.com/apeman-app-labo/apeman-app-rest [bd_gemnasium_shield_url]: https://gemnasium.com/apeman-app-labo/apeman-app-rest.svg [bd_npm_url]: http://www.npmjs.org/package/apeman-app-rest [bd_npm_shield_url]: http://img.shields.io/npm/v/apeman-app-rest.svg?style=flat [bd_standard_url]: http://standardjs.com/ [bd_standard_shield_url]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg <!-- Badge End --> <!-- Description Start --> <a name="description"></a> apeman app to handle restful endpoint. <!-- Description End --> <!-- Overview Start --> <a name="overview"></a> <!-- Overview End --> <!-- Sections Start --> <a name="sections"></a> <!-- Section from "doc/guides/01.Installation.md.hbs" Start --> <a name="section-doc-guides-01-installation-md"></a> Installation ----- ```bash $ npm install apeman-app-rest --save ``` <!-- Section from "doc/guides/01.Installation.md.hbs" End --> <!-- Section from "doc/guides/02.Usage.md.hbs" Start --> <a name="section-doc-guides-02-usage-md"></a> Usage --------- 1. Define an app within Apemanfile.js 2. Call the app via apeman app command. **Apemanfile.js** ```javascript /** This is an example Apemanfile to use apeman-app-rest */ 'use strict' const db = require('./db') // Apeman db modle instance const { User } = db.models module.exports = { $pkg: { /* ... */ }, $apps: { // Define your own app. 'my-app-01': { // Map url and handlers. '/': [ require('apeman-app-rest')(User, { // Options }) ] } } } ``` Then, ```bash $ apeman app my-app-01 -p 3000 ``` ```javascript 'use strict' const apemanrequest = require('apemanrequest') const co = require('co') const assert = require('assert') let request = apemanrequest.create({ jar: true }) co(function * () { // Create a resource. { let res = yield request({ method: 'POST', url: 'http://localhost:3000/user', form: { account_name: 'foo_bar', email: 'apbc@example.com' } }) /* ... */ } // Get a resource. { let res = yield request({ method: 'GET', url: 'http://localhost:3000/user/1' // Pass resource id as url-param. }) /* ... */ } // List resource. { let res = yield request({ method: 'GET', url: 'http://localhost:3000/user?account_name.$like=foo&limit=5&offset=5' }) /* ... */ } // Update the resource. { let res = yield request({ method: 'PATCH', url: 'http://localhost:3000/user/1', // Pass resource id as url-param. form: { account_name: 'foo_bar2_updated' } }) /* ... */ } // Destroy the resource. { let res = yield request({ method: 'DELETE', url: 'http://localhost:3000/user/1' // Pass resource id as url-param. }) /* ... */ } }).catch((err) => { console.error(err) }) ``` <!-- Section from "doc/guides/02.Usage.md.hbs" End --> <!-- Section from "doc/guides/03.Signature.md.hbs" Start --> <a name="section-doc-guides-03-signature-md"></a> Signature ------- #### apemanAppRest(models, options) -> function apeman app to handle restful endpoint. ##### Args | Name | Type | Default | Description | | --- | ---- | --- | --- | | models | object | | Model objects. | | options | object | | Optional settings. | | options.pathname | function | '/'+apemanmodel.toType(model) | Spec path name. | | options.knock | Endpoint|boolean | | | | options.spec | Endpoint|boolean | | | | options.list | Endpoint|boolean | | | | options.create | Endpoint|boolean | | | | options.bulkUpdate | Endpoint|boolean | | | | options.bulkDestroy | Endpoint|boolean | | | | options.one | Endpoint|boolean | | | | options.update | Endpoint|boolean | | | | options.destroy | Endpoint|boolean | | | | options.relatedList | Endpoint|boolean | | | | options.relatedCreate | Endpoint|boolean | | | | options.relatedUpdateBulk | Endpoint|boolean | | | | options.relatedDestroyBulk | Endpoint|boolean | | | | options.relatedOne | Endpoint|boolean | | | | options.relatedUpdate | Endpoint|boolean | | | | options.relatedDestroy | Endpoint|boolean | | | | options.relationList | Endpoint|boolean | | | | options.relationCreate | Endpoint|boolean | | | | options.relationUpdate | Endpoint|boolean | | | | options.relationDestroy | Endpoint|boolean | | | <!-- Section from "doc/guides/03.Signature.md.hbs" End --> <!-- Sections Start --> <!-- LICENSE Start --> <a name="license"></a> License ------- This software is released under the [MIT License](https://github.com/apeman-app-labo/apeman-app-rest/blob/master/LICENSE). <!-- LICENSE End --> <!-- Links Start --> <a name="links"></a> Links ------ + [apeman](https://github.com/apeman-labo/apeman) + [JSON API](http://jsonapi.org/) + [apeman-app](https://github.com/apeman-cmd-labo/apeman-app) <!-- Links End -->