client-generator
v1.0.5
Published
#### Automatic client generator for express services
Downloads
71
Readme
Client Generator
Automatic client generator for express services
What is client-generator?
Suppose you have a service with controllers folder which controls your routes. Now you want to generate a client service which contains http and rpc interfaces of the routes your service handles. By using this package you can generate the client service automatically and call its functions to easily access to your server service APIs.
How it Works?
This service generates one js file per folder in controllers folder of your service as well as static files that all the clients share. You should use special comments above the functions in your controllers folder that handle your routes.
For functions that don't control your routes and you don't want them to appear in client service don't use below parameters in your comments. Comments consist of three parts:
- @name
- @route
- @method
For example suppose you have a route in your service with GET method with /books route and you want to name this function getBooks in your client service. So the comment syntax would be like below:
@name getBooks
@route /books
@method GET
Suppose you have params inside your route, for example you want to get authors of a specific book, and the id of the book would be inside of route. Your route part of comment would be like below:
@route /books/request.params.bood_id/authors
Other parameters like request query, request body and request headers would be extracted from the request argument that you send as input when calling client service function and you don't need to put comment about them .
Install
npm i -g client-generator
Usage
client-generator <absolute_controllers_folder_path> <absolute_output_path>
For example if you want to generate client service of yoohoo project and you want the client service to be generated on your desktop your command would be something like below:client-generator /home/me/yoohoo/src/controllers /home/me/Desktop
After above command you will have a folder named automatic-client-generator in your desktop with this structure:
├── lib
│ ├── client.js
│ ├── config.js
│ ├── interface.js
│ ├── services
│ │ ├── http
│ │ │ ├── index.js
│ │ │ ├── *.js
│ │ ├── rpc
│ │ │ ├── index.js
│ │ │ ├── *.js
├── index.js
├── package.json
└── babel.config.js