UNPKG

6.24 kBMarkdownView Raw
1apeman-app-rest
2==========
3
4<!---
5This file is generated by ape-tmpl. Do not update manually.
6--->
7
8<!-- Badge Start -->
9<a name="badges"></a>
10
11[![Build Status][bd_travis_shield_url]][bd_travis_url]
12[![Code Climate][bd_codeclimate_shield_url]][bd_codeclimate_url]
13[![Code Coverage][bd_codeclimate_coverage_shield_url]][bd_codeclimate_url]
14[![npm Version][bd_npm_shield_url]][bd_npm_url]
15[![JS Standard][bd_standard_shield_url]][bd_standard_url]
16
17[bd_repo_url]: https://github.com/apeman-app-labo/apeman-app-rest
18[bd_travis_url]: http://travis-ci.org/apeman-app-labo/apeman-app-rest
19[bd_travis_shield_url]: http://img.shields.io/travis/apeman-app-labo/apeman-app-rest.svg?style=flat
20[bd_travis_com_url]: http://travis-ci.com/apeman-app-labo/apeman-app-rest
21[bd_travis_com_shield_url]: https://api.travis-ci.com/apeman-app-labo/apeman-app-rest.svg?token=
22[bd_license_url]: https://github.com/apeman-app-labo/apeman-app-rest/blob/master/LICENSE
23[bd_codeclimate_url]: http://codeclimate.com/github/apeman-app-labo/apeman-app-rest
24[bd_codeclimate_shield_url]: http://img.shields.io/codeclimate/github/apeman-app-labo/apeman-app-rest.svg?style=flat
25[bd_codeclimate_coverage_shield_url]: http://img.shields.io/codeclimate/coverage/github/apeman-app-labo/apeman-app-rest.svg?style=flat
26[bd_gemnasium_url]: https://gemnasium.com/apeman-app-labo/apeman-app-rest
27[bd_gemnasium_shield_url]: https://gemnasium.com/apeman-app-labo/apeman-app-rest.svg
28[bd_npm_url]: http://www.npmjs.org/package/apeman-app-rest
29[bd_npm_shield_url]: http://img.shields.io/npm/v/apeman-app-rest.svg?style=flat
30[bd_standard_url]: http://standardjs.com/
31[bd_standard_shield_url]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
32
33<!-- Badge End -->
34
35
36<!-- Description Start -->
37<a name="description"></a>
38
39apeman app to handle restful endpoint.
40
41<!-- Description End -->
42
43
44<!-- Overview Start -->
45<a name="overview"></a>
46
47
48
49<!-- Overview End -->
50
51
52<!-- Sections Start -->
53<a name="sections"></a>
54
55<!-- Section from "doc/guides/01.Installation.md.hbs" Start -->
56
57<a name="section-doc-guides-01-installation-md"></a>
58Installation
59-----
60
61```bash
62$ npm install apeman-app-rest --save
63```
64
65
66<!-- Section from "doc/guides/01.Installation.md.hbs" End -->
67
68<!-- Section from "doc/guides/02.Usage.md.hbs" Start -->
69
70<a name="section-doc-guides-02-usage-md"></a>
71Usage
72---------
73
741. Define an app within Apemanfile.js
752. Call the app via apeman app command.
76
77**Apemanfile.js**
78```javascript
79/** This is an example Apemanfile to use apeman-app-rest */
80
81'use strict'
82
83const db = require('./db') // Apeman db modle instance
84const { User } = db.models
85
86module.exports = {
87 $pkg: { /* ... */ },
88 $apps: {
89 // Define your own app.
90 'my-app-01': {
91 // Map url and handlers.
92 '/': [
93 require('apeman-app-rest')(User, {
94 // Options
95 })
96 ]
97 }
98 }
99}
100
101```
102
103Then,
104```bash
105$ apeman app my-app-01 -p 3000
106```
107
108
109```javascript
110'use strict'
111
112const apemanrequest = require('apemanrequest')
113const co = require('co')
114const assert = require('assert')
115
116let request = apemanrequest.create({ jar: true })
117
118co(function * () {
119 // Create a resource.
120 {
121 let res = yield request({
122 method: 'POST',
123 url: 'http://localhost:3000/user',
124 form: {
125 account_name: 'foo_bar',
126 email: 'apbc@example.com'
127 }
128 })
129 /* ... */
130 }
131
132 // Get a resource.
133 {
134 let res = yield request({
135 method: 'GET',
136 url: 'http://localhost:3000/user/1' // Pass resource id as url-param.
137 })
138 /* ... */
139 }
140
141 // List resource.
142 {
143 let res = yield request({
144 method: 'GET',
145 url: 'http://localhost:3000/user?account_name.$like=foo&limit=5&offset=5'
146 })
147 /* ... */
148 }
149
150 // Update the resource.
151 {
152 let res = yield request({
153 method: 'PATCH',
154 url: 'http://localhost:3000/user/1', // Pass resource id as url-param.
155 form: {
156 account_name: 'foo_bar2_updated'
157 }
158 })
159 /* ... */
160 }
161
162 // Destroy the resource.
163 {
164 let res = yield request({
165 method: 'DELETE',
166 url: 'http://localhost:3000/user/1' // Pass resource id as url-param.
167 })
168 /* ... */
169 }
170}).catch((err) => {
171 console.error(err)
172})
173
174```
175
176
177<!-- Section from "doc/guides/02.Usage.md.hbs" End -->
178
179<!-- Section from "doc/guides/03.Signature.md.hbs" Start -->
180
181<a name="section-doc-guides-03-signature-md"></a>
182Signature
183-------
184
185#### apemanAppRest(models, options) -> function
186
187apeman app to handle restful endpoint.
188
189##### Args
190
191| Name | Type | Default | Description |
192| --- | ---- | --- | --- |
193| models | object | | Model objects. |
194| options | object | | Optional settings. |
195| options.pathname | function | '/'+apemanmodel.toType(model) | Spec path name. |
196| options.knock | Endpoint|boolean | | |
197| options.spec | Endpoint|boolean | | |
198| options.list | Endpoint|boolean | | |
199| options.create | Endpoint|boolean | | |
200| options.bulkUpdate | Endpoint|boolean | | |
201| options.bulkDestroy | Endpoint|boolean | | |
202| options.one | Endpoint|boolean | | |
203| options.update | Endpoint|boolean | | |
204| options.destroy | Endpoint|boolean | | |
205| options.relatedList | Endpoint|boolean | | |
206| options.relatedCreate | Endpoint|boolean | | |
207| options.relatedUpdateBulk | Endpoint|boolean | | |
208| options.relatedDestroyBulk | Endpoint|boolean | | |
209| options.relatedOne | Endpoint|boolean | | |
210| options.relatedUpdate | Endpoint|boolean | | |
211| options.relatedDestroy | Endpoint|boolean | | |
212| options.relationList | Endpoint|boolean | | |
213| options.relationCreate | Endpoint|boolean | | |
214| options.relationUpdate | Endpoint|boolean | | |
215| options.relationDestroy | Endpoint|boolean | | |
216
217
218<!-- Section from "doc/guides/03.Signature.md.hbs" End -->
219
220
221<!-- Sections Start -->
222
223
224<!-- LICENSE Start -->
225<a name="license"></a>
226
227License
228-------
229This software is released under the [MIT License](https://github.com/apeman-app-labo/apeman-app-rest/blob/master/LICENSE).
230
231<!-- LICENSE End -->
232
233
234<!-- Links Start -->
235<a name="links"></a>
236
237Links
238------
239
240+ [apeman](https://github.com/apeman-labo/apeman)
241+ [JSON API](http://jsonapi.org/)
242+ [apeman-app](https://github.com/apeman-cmd-labo/apeman-app)
243
244<!-- Links End -->