https://github.com/qertis/openapi-jsonrpc-jsdoc
Generator OpenAPI (Swagger, Postman) JSON-RPC by JSDOC
https://github.com/qertis/openapi-jsonrpc-jsdoc
gotois jsdoc json-rpc json-rpc-api json-rpc2 openapi
Last synced: 4 months ago
JSON representation
Generator OpenAPI (Swagger, Postman) JSON-RPC by JSDOC
- Host: GitHub
- URL: https://github.com/qertis/openapi-jsonrpc-jsdoc
- Owner: qertis
- License: mit
- Created: 2019-11-13T11:56:34.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-05T07:39:41.000Z (about 2 years ago)
- Last Synced: 2025-01-31T19:11:10.686Z (4 months ago)
- Topics: gotois, jsdoc, json-rpc, json-rpc-api, json-rpc2, openapi
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/openapi-jsonrpc-jsdoc
- Size: 21.5 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# openapi-jsonrpc-jsdoc
## Install
```fish
npm i openapi-jsonrpc-jsdoc --save-dev
```## Example
### Create JSON-RPC Method
```js
// api/api-v1.js
/**
* @description Название API
* @param {object} parameters - params
* @param {string} parameters.id - id
*/
module.exports = (parameters) => {
return parameters.id;
}
```### Run package
```js
// index.js
const fs = require('fs');
const openapiJSONRpcJSDoc = require('openapi-jsonrpc-jsdoc');
openapiJSONRpcJSDoc({
api: '/',
servers: [
{
url: '0.0.0.0:8080',
},
],
packageUrl: './package.json',
files: './api/*.js',
}).then(data => {
fs.writeFileSync('openapi.json', JSON.stringify(data, null, 2));
});
```See result
```json
{
"x-send-defaults": true,
"openapi": "3.0.0",
"x-api-id": "json-rpc-example",
"x-headers": [],
"x-explorer-enabled": true,
"x-proxy-enabled": true,
"x-samples-enabled": true,
"x-samples-languages": [
"curl",
"node",
"javascript"
],
"info": {
"version": "1.0.0",
"title": "project-name",
"description": "project-description"
},
"servers": [
{
"url": "0.0.0.0:8080"
}
],
"paths": {
"/api/api-v1": {
"post": {
"operationId": "api-v1.js",
"deprecated": false,
"summary": "/api-v1",
"description": "Название API",
"tags": [
"JSONRPC"
],
"parameters": [],
"responses": {
"200": {
"description": "OK"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"method",
"id",
"jsonrpc",
"params"
],
"properties": {
"method": {
"type": "string",
"default": "api-v1",
"description": "API method api-v1"
},
"id": {
"type": "integer",
"default": 1,
"format": "int32",
"description": "Request ID"
},
"jsonrpc": {
"type": "string",
"default": "2.0",
"description": "JSON-RPC Version (2.0)"
},
"params": {
"title": "Parameters",
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "id"
}
}
}
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"BasicAuth": {
"type": "http",
"scheme": "digest"
}
}
},
"security": [
{
"BasicAuth": []
}
],
"tags": []
}
```