temba 0.44.0 → 0.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -416
- package/config/index.js +1 -1
- package/openapi/spec.d.ts.map +1 -1
- package/openapi/spec.js +49 -17
- package/openapi/spec.js.map +1 -1
- package/package.json +2 -2
- package/version.js +1 -1
package/README.md
CHANGED
|
@@ -1,52 +1,21 @@
|
|
|
1
1
|
# Temba
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/temba)
|
|
3
|
+
[](https://www.npmjs.com/package/temba) [](#contributors-) [](https://temba.bouwe.io)
|
|
4
4
|
|
|
5
|
-
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
6
5
|
|
|
7
|
-
[](#contributors-)
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
**Create a simple REST API with zero coding in less than 30 seconds (seriously).**
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
For developers that need a **quick NodeJS backend** for small projects.
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
**No need for any coding**, unless you want to opt-out of the defaults, or want to do more customization.
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
An **OpenAPI specification** is generated and enabled by default, providing **interactive documentation** and allowing you to generate client code from it.
|
|
16
14
|
|
|
17
|
-
Data is kept in memory
|
|
18
|
-
|
|
19
|
-
## Table of contents
|
|
20
|
-
|
|
21
|
-
[Temba?](#temba-1)
|
|
22
|
-
|
|
23
|
-
[Getting Started](#getting-started)
|
|
24
|
-
|
|
25
|
-
[What Temba does](#what-temba-does)
|
|
26
|
-
|
|
27
|
-
[Usage](#usage)
|
|
28
|
-
|
|
29
|
-
[Config settings overview](#config-settings-overview)
|
|
30
|
-
|
|
31
|
-
## Temba?
|
|
32
|
-
|
|
33
|
-
> _"Temba, at REST"_
|
|
34
|
-
|
|
35
|
-
A metaphor for the declining of a gift, from the [Star Trek - The Next Generation episode "Darmok"](https://memory-alpha.fandom.com/wiki/Temba).
|
|
36
|
-
|
|
37
|
-
In the fictional Tamarian language the word _"Temba"_ means something like _"gift"_.
|
|
15
|
+
Data is kept **in memory**, but you can also store it in a **JSON file** or **MongoDB database**.
|
|
38
16
|
|
|
39
17
|
## Getting Started
|
|
40
18
|
|
|
41
|
-
Prerequisites you need to have:
|
|
42
|
-
|
|
43
|
-
* Node
|
|
44
|
-
* NPM
|
|
45
|
-
|
|
46
|
-
- Optional: A MongoDB database, either locally or in the cloud
|
|
47
|
-
|
|
48
|
-
### Use the starter with `npx`
|
|
49
|
-
|
|
50
19
|
Create your own Temba server instantly:
|
|
51
20
|
|
|
52
21
|
```
|
|
@@ -63,390 +32,16 @@ This command will:
|
|
|
63
32
|
You’ll see:
|
|
64
33
|
|
|
65
34
|
```
|
|
66
|
-
✅ Server listening on port
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Now you can send any HTTP request to any resource on localhost:3000 — and it just works.
|
|
70
|
-
|
|
71
|
-
### Adding to an existing app
|
|
72
|
-
|
|
73
|
-
Alternatively, add Temba to your app manually:
|
|
74
|
-
|
|
75
|
-
1. `npm i temba`
|
|
76
|
-
|
|
77
|
-
2. Example code to create a Temba server:
|
|
78
|
-
|
|
79
|
-
```js
|
|
80
|
-
import { create } from "temba"
|
|
81
|
-
const server = await create()
|
|
82
|
-
await server.start()
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
3. In your console you'll see:
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
✅ Server listening on port 3000
|
|
35
|
+
✅ Server listening on port 8362
|
|
89
36
|
```
|
|
90
37
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
To opt-out or customize Temba's workings, pass a `config` object to the `create` function. Learn more in the [Usage](#usage) section, or check out the [config settings](#config-settings-overview).
|
|
94
|
-
|
|
95
|
-
## What Temba does
|
|
96
|
-
|
|
97
|
-
Out of the box, Temba gives you a CRUD REST API to any resource name you can think of.
|
|
98
|
-
|
|
99
|
-
Whether you `GET` either `/people`, `/movies`, `/pokemons`, or whatever, it all returns a `200 OK` with a `[]` JSON response. As soon as you `POST` a new resource, followed by a `GET` of that resource, the new resource will be returned. You can also `DELETE`, `PATCH`, or `PUT` resources by its ID.
|
|
100
|
-
|
|
101
|
-
For every resource (`movies` is just an example), Temba supports the following requests:
|
|
102
|
-
|
|
103
|
-
- `GET /movies` - Get all movies
|
|
104
|
-
- `GET /movies/:id` - Get a movie by its ID
|
|
105
|
-
- `POST /movies` - Create a new movie
|
|
106
|
-
- `POST /movies:/id` - Create a new movie specifying the ID yourself
|
|
107
|
-
- `PATCH /movies/:id` - Partially update a movie by its ID
|
|
108
|
-
- `PUT /movies/:id` - Fully replace a movie by its ID
|
|
109
|
-
- `DELETE /movies` - Delete all movies (if configured)
|
|
110
|
-
- `DELETE /movies/:id` - Delete a movie by its ID
|
|
111
|
-
- `HEAD /movies` - Get all movies, but without the response body
|
|
112
|
-
- `HEAD /movies/:id` - Get a movie by its ID, but without the response body
|
|
113
|
-
|
|
114
|
-
### Supported HTTP methods
|
|
38
|
+
Now you can send any HTTP request to any resource on localhost:8362 — and it just works.
|
|
115
39
|
|
|
116
|
-
|
|
40
|
+
Or headover to the interactive OpenAPI specification of your API in your browser at `/openapi`.
|
|
117
41
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
### JSON
|
|
121
|
-
|
|
122
|
-
Temba supports JSON only.
|
|
123
|
-
|
|
124
|
-
Request bodies sent with a `POST`, `PATCH`, and `PUT` requests are valid when the request body is either empty, or when it's valid formatted JSON. If you send a request with invalid formatted JSON, a `400 Bad Request` response is returned.
|
|
125
|
-
|
|
126
|
-
Any valid formatted JSON is accepted and stored. If you want to validate or even change the JSON in the request bodies, check out [JSON Schema request body validation](#json-schema-request-body-validation) and the [`requestInterceptor`](#request-validation-or-mutation).
|
|
127
|
-
|
|
128
|
-
IDs are auto generated when creating resources, unless you specify an ID in the `POST` request URL.
|
|
129
|
-
|
|
130
|
-
Providing IDs in the request body of `POST`, `PUT`, or `PATCH` requests is not allowed and will return a `400 Bad Request` response. Instead, provide the ID in the request URL. However, omitting an ID in a `PUT` or `PATCH` request URL also returns a `400 Bad Request` response.
|
|
131
|
-
|
|
132
|
-
## Usage
|
|
133
|
-
|
|
134
|
-
### Data persistency
|
|
135
|
-
|
|
136
|
-
By default data is stored in memory. This means the data is flushed when the server restarts. To persist your data, provide the `connectionString` config setting for your JSON file or MongoDB database.
|
|
137
|
-
|
|
138
|
-
#### JSON file
|
|
139
|
-
|
|
140
|
-
```js
|
|
141
|
-
const config = {
|
|
142
|
-
connectionString: 'data.json',
|
|
143
|
-
}
|
|
144
|
-
const server = await create(config)
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
All resources are saved in a single JSON file. The file is not created or updated unless you create, update, or delete resources.
|
|
148
|
-
|
|
149
|
-
#### MongoDB
|
|
150
|
-
|
|
151
|
-
```js
|
|
152
|
-
const config = {
|
|
153
|
-
connectionString: 'mongodb://localhost:27017/myDatabase',
|
|
154
|
-
}
|
|
155
|
-
const server = await create(config)
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
For every resource you use in your requests, a collection is created in the database. However, not until you actually create a resource with a `POST`.
|
|
159
|
-
|
|
160
|
-
### Allowing specific resources only
|
|
161
|
-
|
|
162
|
-
If you only want to allow specific resource names, configure them by providing a `resources` key in the config object when creating the Temba server:
|
|
163
|
-
|
|
164
|
-
```js
|
|
165
|
-
const config = {
|
|
166
|
-
resources: ['movies', 'actors'],
|
|
167
|
-
}
|
|
168
|
-
const server = await create(config)
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
Requests on these resources only give a `404 Not Found` if the ID does not exist. Requests on any other resource will always return a `404 Not Found`.
|
|
172
|
-
|
|
173
|
-
### API prefix
|
|
174
|
-
|
|
175
|
-
With the `apiPrefix` config setting, all resources get an extra path segment in front of them. If the `apiPrefix` is `'api'`, then `/movies/12345` becomes `/api/movies/12345`:
|
|
176
|
-
|
|
177
|
-
```js
|
|
178
|
-
const config = {
|
|
179
|
-
apiPrefix: 'api',
|
|
180
|
-
}
|
|
181
|
-
const server = await create(config)
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
After configuring the `apiPrefix`, requests to the root URL (e.g. http://localhost:1234/), will now either return a `404 Not Found` on `GET` requests, or a `405 Method Not Allowed` for any other HTTP method.
|
|
185
|
-
|
|
186
|
-
### Static assets
|
|
187
|
-
|
|
188
|
-
If you want to host static assets, for example a web app consuming the API, you can configure a `staticFolder`:
|
|
189
|
-
|
|
190
|
-
```js
|
|
191
|
-
const config = {
|
|
192
|
-
staticFolder: 'build',
|
|
193
|
-
}
|
|
194
|
-
const server = await create(config)
|
|
195
|
-
```
|
|
42
|
+
## Documentation
|
|
196
43
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
To prevent conflicts between the API resources and the web app routes, configuring a `staticFolder` also automatically sets the `apiPrefix` to "`api"`. Of course you can always change the `apiPrefix` to something else.
|
|
200
|
-
|
|
201
|
-
### JSON Schema request body validation
|
|
202
|
-
|
|
203
|
-
By default, Temba does not validate request bodies.
|
|
204
|
-
|
|
205
|
-
This means you can store your resources in any format you like. So creating the following two (very different) _movies_ is perfectly fine:
|
|
206
|
-
|
|
207
|
-
```
|
|
208
|
-
POST /movies
|
|
209
|
-
{
|
|
210
|
-
"title": "O Brother, Where Art Thou?",
|
|
211
|
-
"description": "In the deep south during the 1930s, three escaped convicts search for hidden treasure while a relentless lawman pursues them."
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
POST /movies
|
|
215
|
-
{
|
|
216
|
-
"foo": "bar",
|
|
217
|
-
"baz": "boo"
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
You can even omit a request body when doing a `POST`, `PATCH`, or `PUT`. While this might be fine or even convenient when using Temba for prototyping, at some some point you might want to validate the request body.
|
|
222
|
-
|
|
223
|
-
With the `schema` setting, you can define a [JSON Schema](https://json-schema.org/), per resource, and per request method. Here we define that when creating or replacing a movie, the `title` is required, the `description` is optional, and we don't allow any other fields. Updating movies has the same schema, except there are no required fields:
|
|
224
|
-
|
|
225
|
-
```js
|
|
226
|
-
const schemaNewMovie = {
|
|
227
|
-
type: 'object',
|
|
228
|
-
properties: {
|
|
229
|
-
title: { type: 'string' },
|
|
230
|
-
description: { type: 'string' },
|
|
231
|
-
},
|
|
232
|
-
required: ['title'],
|
|
233
|
-
additionalProperties: false,
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
const schemaUpdateMovie = { ...schemaNewMovie, required: [] }
|
|
237
|
-
|
|
238
|
-
const config = {
|
|
239
|
-
schema: {
|
|
240
|
-
movies: {
|
|
241
|
-
post: schemaNewMovie,
|
|
242
|
-
put: schemaNewMovie,
|
|
243
|
-
patch: schemaUpdateMovie,
|
|
244
|
-
},
|
|
245
|
-
},
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
const server = await create(config)
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
If a request is not valid according to the schema, a `400 Bad Request` response is returned, and a message in the response body indicating the validation error.
|
|
252
|
-
|
|
253
|
-
### Intercepting requests
|
|
254
|
-
|
|
255
|
-
In addition to (or instead of) validating the request using JSON Schema, you can also intercept the request before it is persisted, using the `requestInterceptor` setting.
|
|
256
|
-
|
|
257
|
-
It allows you to implement your own validation, or even change the request body.
|
|
258
|
-
|
|
259
|
-
```js
|
|
260
|
-
const config = {
|
|
261
|
-
requestInterceptor: {
|
|
262
|
-
get: ({ headers, resource, id }) => {
|
|
263
|
-
//...
|
|
264
|
-
},
|
|
265
|
-
post: ({ headers, resource, id, body }) => {
|
|
266
|
-
// Validate, or even change the request body
|
|
267
|
-
},
|
|
268
|
-
put: ({ headers, resource, id, body }) => {
|
|
269
|
-
// Validate, or even change the request body
|
|
270
|
-
},
|
|
271
|
-
patch: ({ headers, resource, id, body }) => {
|
|
272
|
-
// Validate, or even change the request body
|
|
273
|
-
},
|
|
274
|
-
delete: ({ headers, resource, id }) => {
|
|
275
|
-
//...
|
|
276
|
-
},
|
|
277
|
-
},
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
const server = await create(config)
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
The `requestInterceptor` is an object with fields for each of the HTTP methods you might want to intercept, and the callback function you want Temba to call, before processing the request, i.e. going to the database.
|
|
284
|
-
|
|
285
|
-
Each callback function receives an object containing the request headers and the `resource` (e.g. `"movies"`). Depending on the HTTP method, also the `id` from the URL, and the request `body` are provided. `body` is a JSON object of the request body.
|
|
286
|
-
|
|
287
|
-
> Request headers are not used by Temba internally when processing requests, so they are only passed into the `requestInterceptor` callback so you can do your own custom header validation.
|
|
288
|
-
|
|
289
|
-
Your callback function can return the following things:
|
|
290
|
-
|
|
291
|
-
- `void`: Temba will just save the request body as-is. An example of this is when you have validated the request body and everything looks fine.
|
|
292
|
-
- `object`: Return an object if you want to change the request body. Temba will save the returned object instead of the original request body.
|
|
293
|
-
- Throw an `Error` if you want to stop processing the request any further and return a `500 Internal Server Error` response. Or throw the custom `TembaError` to provide a status code.
|
|
294
|
-
|
|
295
|
-
Example:
|
|
296
|
-
|
|
297
|
-
```js
|
|
298
|
-
const config = {
|
|
299
|
-
requestInterceptor: {
|
|
300
|
-
post: ({ headers, resource, id, body }) => {
|
|
301
|
-
// Add a genre to Star Trek films:
|
|
302
|
-
if (resource === 'movies' && body.title.startsWith('Star Trek'))
|
|
303
|
-
return { ...body, genre: 'Science Fiction' }
|
|
304
|
-
|
|
305
|
-
// Throw a regular error for a 500 Internal Server Error status code
|
|
306
|
-
if (resource === 'foobar') {
|
|
307
|
-
throw new Error('Something went foobar')
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
// Throw a custom error to specify the status code
|
|
311
|
-
if (resource === 'pokemons') {
|
|
312
|
-
throw new TembaError('You are not allowed to create new Pokemons', 400)
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// If you don't return anything, the original request will just be used.
|
|
316
|
-
},
|
|
317
|
-
},
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
const server = await create(config)
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
### Response body interception
|
|
324
|
-
|
|
325
|
-
To change the response body of a `GET` request, before it's being sent to the client, configure a `responseBodyInterceptor`, and return the updated response body:
|
|
326
|
-
|
|
327
|
-
```js
|
|
328
|
-
const config = {
|
|
329
|
-
responseBodyInterceptor: ({ resource, body, id }) => {
|
|
330
|
-
if (resource === 'movies') {
|
|
331
|
-
if (id) {
|
|
332
|
-
// response body is an object
|
|
333
|
-
return {
|
|
334
|
-
...body,
|
|
335
|
-
stuff: 'more stuff',
|
|
336
|
-
}
|
|
337
|
-
} else {
|
|
338
|
-
// response body is an array
|
|
339
|
-
return body.map((x) => ({
|
|
340
|
-
...x,
|
|
341
|
-
stuff: 'more stuff',
|
|
342
|
-
}))
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
// If you end up here, the response body will just be returned unchanged.
|
|
347
|
-
},
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
const server = await create(config)
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
`responseBodyInterceptor` is a callback function that provides an object containing the `resource`, `body`, and the `id`. Depending on whether it's a collection or item request, the `body` is either an array or object, and the `id` can be `undefined`.
|
|
354
|
-
|
|
355
|
-
In the example above we check for the `id` being defined, but a runtime check to determine the type of `body` would also suffice.
|
|
356
|
-
|
|
357
|
-
Whatever you return in this function will become the response body and will be serialized as JSON and returned to the client.
|
|
358
|
-
|
|
359
|
-
If you don't return anything, the response body will be sent as-is.
|
|
360
|
-
|
|
361
|
-
The `responseBodyInterceptor` will only be called when the response was successful, i.e. a `200 OK` status code.
|
|
362
|
-
|
|
363
|
-
### Caching and consistency with Etags
|
|
364
|
-
|
|
365
|
-
To optimize `GET` requests, and only send JSON over the wire when it changed, you can configure to enable Etags. Etags also prevent so-called mid-air collisions, where a client tries to update en item that has been updated by another client in the meantime:
|
|
366
|
-
|
|
367
|
-
```js
|
|
368
|
-
const config = {
|
|
369
|
-
etags: true,
|
|
370
|
-
}
|
|
371
|
-
const server = await create(config)
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
After enabling etags, every `GET` request will return an `etag` response header, which clients can (optionally) send as an `If-None-Match` header with every subsequent `GET` request. Only if the resource changed in the meantime the server will return the new JSON, and otherwise it will return a `304 Not Modified` response with an empty response body.
|
|
375
|
-
|
|
376
|
-
For updating or deleting items with a `PUT`, `PATCH`, or `DELETE`, after enabling etags, these requests are _required_ to provide an `If-Match` header with the etag. Only if the etag represents the latest version of the resource the update is made, otherwise the server responds with a `412 Precondition Failed` status code.
|
|
377
|
-
|
|
378
|
-
## Config settings overview
|
|
379
|
-
|
|
380
|
-
Configuring Temba is optional, it already works out of the box.
|
|
381
|
-
|
|
382
|
-
Here is an example of the config settings for Temba, and how you define them:
|
|
383
|
-
|
|
384
|
-
```js
|
|
385
|
-
const config = {
|
|
386
|
-
allowDeleteCollection: true,
|
|
387
|
-
apiPrefix: 'api',
|
|
388
|
-
connectionString: 'mongodb://localhost:27017/myDatabase',
|
|
389
|
-
delay: 500,
|
|
390
|
-
etags: true,
|
|
391
|
-
port: 4321,
|
|
392
|
-
requestInterceptor: {
|
|
393
|
-
get: ({ headers, resource, id }) => {
|
|
394
|
-
//...
|
|
395
|
-
},
|
|
396
|
-
post: ({ headers, resource, id, body }) => {
|
|
397
|
-
// Validate, or even change the request body
|
|
398
|
-
},
|
|
399
|
-
put: ({ headers, resource, id, body }) => {
|
|
400
|
-
// Validate, or even change the request body
|
|
401
|
-
},
|
|
402
|
-
patch: ({ headers, resource, id, body }) => {
|
|
403
|
-
// Validate, or even change the request body
|
|
404
|
-
},
|
|
405
|
-
delete: ({ headers, resource, id }) => {
|
|
406
|
-
//...
|
|
407
|
-
},
|
|
408
|
-
},
|
|
409
|
-
resources: ['movies', 'actors'],
|
|
410
|
-
responseBodyInterceptor: ({ resource, body, id }) => {
|
|
411
|
-
// Change the response body before it is sent to the client
|
|
412
|
-
},
|
|
413
|
-
returnNullFields: false,
|
|
414
|
-
schema: {
|
|
415
|
-
movies: {
|
|
416
|
-
post: {
|
|
417
|
-
type: 'object',
|
|
418
|
-
properties: {
|
|
419
|
-
title: { type: 'string' },
|
|
420
|
-
},
|
|
421
|
-
required: ['title'],
|
|
422
|
-
},
|
|
423
|
-
},
|
|
424
|
-
},
|
|
425
|
-
staticFolder: 'build',
|
|
426
|
-
}
|
|
427
|
-
const server = await create(config)
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
These are all the possible settings:
|
|
431
|
-
|
|
432
|
-
| Config setting | Description | Default value |
|
|
433
|
-
| :------------------------ | :----------------------------------------------------------------------------------------- | :------------ |
|
|
434
|
-
| `allowDeleteCollection` | Whether a `DELETE` request on a collection is allowed to delete all items. | `false` |
|
|
435
|
-
| `apiPrefix` | See [API prefix](#api-prefix) | `null` | `'api'` |
|
|
436
|
-
| `connectionString` | See [Data persistency](#data-persistency) | `null` |
|
|
437
|
-
| `delay` | The delay, in milliseconds, after processing the request before sending the response. | `0` |
|
|
438
|
-
| `etags` | See [Caching and consistency with Etags](#caching-and-consistency-with-etags) | `false` |
|
|
439
|
-
| `port` | The port your Temba server listens on | `3000` |
|
|
440
|
-
| `requestInterceptor` | See [Request validation or mutation](#request-validation-or-mutation) | `noop` |
|
|
441
|
-
| `resources` | See [Allowing specific resources only](#allowing-specific-resources-only) | `[]` |
|
|
442
|
-
| `responseBodyInterceptor` | See [Response body interception](#response-body-interception) | `noop` |
|
|
443
|
-
| `returnNullFields` | Whether fields with a null value should be returned in responses. | `true` |
|
|
444
|
-
| `schema` | See [JSON Schema request body validation](#json-schema-request-body-validation) | `null` |
|
|
445
|
-
| `staticFolder` | See [Static assets](#static-assets) | `null` |
|
|
446
|
-
|
|
447
|
-
## Under the hood
|
|
448
|
-
|
|
449
|
-
Temba is built with TypeScript, [Node](https://nodejs.org), [Vitest](https://vitest.dev/), [Supertest](https://www.npmjs.com/package/supertest), [@rakered/mongo](https://www.npmjs.com/package/@rakered/mongo), and [lowdb](https://www.npmjs.com/package/lowdb).
|
|
44
|
+
Find full usage guides, configuration options, API reference, JSON Schema validation examples, interceptor recipes, MongoDB integration tips, and more on our dedicated docs site: [https://temba.bouwe.io](https://temba.bouwe.io)
|
|
450
45
|
|
|
451
46
|
## Contributors ✨
|
|
452
47
|
|
|
@@ -467,3 +62,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
467
62
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
468
63
|
|
|
469
64
|
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
|
65
|
+
|
|
66
|
+
# License
|
|
67
|
+
|
|
68
|
+
MIT, see [LICENSE](https://github.com/bouwe77/temba/blob/main/LICENSE).
|
package/config/index.js
CHANGED
package/openapi/spec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/openapi/spec.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/openapi/spec.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,CAAA;AAogBpC,eAAO,MAAM,OAAO,GAClB,QAAQ,MAAM,EACd,SAAS;IACP,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,aAAa,CAAA;CACtB,WAgEF,CAAA"}
|
package/openapi/spec.js
CHANGED
|
@@ -10,6 +10,10 @@ const defaultResourceInfos = [
|
|
|
10
10
|
pluralResourceUpperCase: 'Resources',
|
|
11
11
|
singularResourceLowerCase: 'resource',
|
|
12
12
|
singularResourceUpperCase: 'Resource',
|
|
13
|
+
tag: {
|
|
14
|
+
name: 'Resources',
|
|
15
|
+
description: 'All resources',
|
|
16
|
+
},
|
|
13
17
|
},
|
|
14
18
|
];
|
|
15
19
|
const getRequestBodySchema = (schema = { type: 'object' }) => ({
|
|
@@ -99,28 +103,35 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
99
103
|
.addServer({
|
|
100
104
|
url: server,
|
|
101
105
|
});
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
106
|
+
builder.addTag({
|
|
107
|
+
name: 'API',
|
|
108
|
+
description: 'Shows information about the API',
|
|
109
|
+
});
|
|
110
|
+
// GET on the root URL
|
|
111
|
+
builder.addPath('/', {
|
|
112
|
+
get: {
|
|
113
|
+
summary: 'API root',
|
|
114
|
+
description: 'Shows information about the API.',
|
|
115
|
+
operationId: 'getApiRoot',
|
|
116
|
+
responses: {
|
|
117
|
+
'200': {
|
|
118
|
+
description: 'The API is working.',
|
|
119
|
+
content: {
|
|
120
|
+
'text/html': {
|
|
121
|
+
schema: {
|
|
122
|
+
type: 'string',
|
|
118
123
|
},
|
|
119
124
|
},
|
|
120
125
|
},
|
|
121
126
|
},
|
|
122
127
|
},
|
|
123
|
-
|
|
128
|
+
tags: ['API'],
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
resourceInfos.forEach((resourceInfo) => {
|
|
132
|
+
const { resource, pluralResourceLowerCase, pluralResourceUpperCase, singularResourceLowerCase, singularResourceUpperCase, } = resourceInfo;
|
|
133
|
+
// Add the tag for this resource
|
|
134
|
+
builder.addTag(resourceInfo.tag);
|
|
124
135
|
const nullFieldsRemark = () => config.returnNullFields
|
|
125
136
|
? ''
|
|
126
137
|
: '\n\nAny fields with `null` values are omitted in all API responses.';
|
|
@@ -148,6 +159,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
148
159
|
},
|
|
149
160
|
},
|
|
150
161
|
},
|
|
162
|
+
tags: [resourceInfo.tag.name],
|
|
151
163
|
},
|
|
152
164
|
head: {
|
|
153
165
|
summary: `HTTP headers for all ${pluralResourceLowerCase}`,
|
|
@@ -159,6 +171,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
159
171
|
description: `HTTP headers for all ${pluralResourceLowerCase}.`,
|
|
160
172
|
},
|
|
161
173
|
},
|
|
174
|
+
tags: [resourceInfo.tag.name],
|
|
162
175
|
},
|
|
163
176
|
post: {
|
|
164
177
|
summary: `Create a new ${singularResourceLowerCase}`,
|
|
@@ -191,6 +204,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
191
204
|
},
|
|
192
205
|
},
|
|
193
206
|
},
|
|
207
|
+
tags: [resourceInfo.tag.name],
|
|
194
208
|
},
|
|
195
209
|
});
|
|
196
210
|
// DELETE on a collection if configured
|
|
@@ -206,6 +220,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
206
220
|
description: `All ${pluralResourceLowerCase} were deleted.`,
|
|
207
221
|
},
|
|
208
222
|
},
|
|
223
|
+
tags: [resourceInfo.tag.name],
|
|
209
224
|
},
|
|
210
225
|
});
|
|
211
226
|
}
|
|
@@ -221,6 +236,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
221
236
|
description: `Method not allowed`,
|
|
222
237
|
},
|
|
223
238
|
},
|
|
239
|
+
tags: [resourceInfo.tag.name],
|
|
224
240
|
},
|
|
225
241
|
});
|
|
226
242
|
}
|
|
@@ -249,6 +265,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
249
265
|
},
|
|
250
266
|
},
|
|
251
267
|
},
|
|
268
|
+
tags: [resourceInfo.tag.name],
|
|
252
269
|
},
|
|
253
270
|
head: {
|
|
254
271
|
summary: `HTTP headers for the ${singularResourceLowerCase} by ID`,
|
|
@@ -263,6 +280,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
263
280
|
description: `The ${singularResourceLowerCase}Id was not found.`,
|
|
264
281
|
},
|
|
265
282
|
},
|
|
283
|
+
tags: [resourceInfo.tag.name],
|
|
266
284
|
},
|
|
267
285
|
post: {
|
|
268
286
|
summary: `Create a new ${singularResourceLowerCase} with id`,
|
|
@@ -334,6 +352,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
334
352
|
},
|
|
335
353
|
},
|
|
336
354
|
},
|
|
355
|
+
tags: [resourceInfo.tag.name],
|
|
337
356
|
},
|
|
338
357
|
put: {
|
|
339
358
|
summary: `Replace ${indefinite(singularResourceLowerCase)}`,
|
|
@@ -379,6 +398,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
379
398
|
},
|
|
380
399
|
},
|
|
381
400
|
},
|
|
401
|
+
tags: [resourceInfo.tag.name],
|
|
382
402
|
},
|
|
383
403
|
patch: {
|
|
384
404
|
summary: `Update ${indefinite(singularResourceLowerCase)}`,
|
|
@@ -424,6 +444,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
424
444
|
},
|
|
425
445
|
},
|
|
426
446
|
},
|
|
447
|
+
tags: [resourceInfo.tag.name],
|
|
427
448
|
},
|
|
428
449
|
delete: {
|
|
429
450
|
summary: `Delete ${indefinite(singularResourceLowerCase)}`,
|
|
@@ -435,6 +456,7 @@ const buildOpenApiSpec = (config, server, resourceInfos) => {
|
|
|
435
456
|
description: `The ${singularResourceLowerCase} was deleted.`,
|
|
436
457
|
},
|
|
437
458
|
},
|
|
459
|
+
tags: [resourceInfo.tag.name],
|
|
438
460
|
},
|
|
439
461
|
});
|
|
440
462
|
});
|
|
@@ -452,12 +474,17 @@ export const getSpec = (config, request) => {
|
|
|
452
474
|
singularResourceLowerCase = singularResourceLowerCase.slice(0, -1);
|
|
453
475
|
}
|
|
454
476
|
const singularResourceUpperCase = singularResourceLowerCase.charAt(0).toUpperCase() + singularResourceLowerCase.slice(1);
|
|
477
|
+
const tag = {
|
|
478
|
+
name: pluralResourceUpperCase,
|
|
479
|
+
description: `All ${pluralResourceLowerCase}`,
|
|
480
|
+
};
|
|
455
481
|
return {
|
|
456
482
|
resource,
|
|
457
483
|
pluralResourceLowerCase,
|
|
458
484
|
pluralResourceUpperCase,
|
|
459
485
|
singularResourceLowerCase,
|
|
460
486
|
singularResourceUpperCase,
|
|
487
|
+
tag,
|
|
461
488
|
};
|
|
462
489
|
}
|
|
463
490
|
else {
|
|
@@ -465,12 +492,17 @@ export const getSpec = (config, request) => {
|
|
|
465
492
|
const pluralResourceUpperCase = pluralResourceLowerCase.charAt(0).toUpperCase() + pluralResourceLowerCase.slice(1);
|
|
466
493
|
const singularResourceLowerCase = resource.singularName.toLowerCase();
|
|
467
494
|
const singularResourceUpperCase = singularResourceLowerCase.charAt(0).toUpperCase() + singularResourceLowerCase.slice(1);
|
|
495
|
+
const tag = {
|
|
496
|
+
name: pluralResourceUpperCase,
|
|
497
|
+
description: `All ${pluralResourceLowerCase}`,
|
|
498
|
+
};
|
|
468
499
|
return {
|
|
469
500
|
resource: resource.resourcePath,
|
|
470
501
|
pluralResourceLowerCase,
|
|
471
502
|
pluralResourceUpperCase,
|
|
472
503
|
singularResourceLowerCase,
|
|
473
504
|
singularResourceUpperCase,
|
|
505
|
+
tag,
|
|
474
506
|
};
|
|
475
507
|
}
|
|
476
508
|
});
|
package/openapi/spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/openapi/spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/openapi/spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "temba",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.45.1",
|
|
4
|
+
"description": "Create a simple REST API with zero coding in less than 30 seconds (seriously).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
7
7
|
"scripts": {
|
package/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = 'v0.
|
|
1
|
+
export const version = 'v0.45.1'
|
|
2
2
|
|