From fc651fe1078e4fa5c4c4740e48871876bc97fd37 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Mon, 8 Apr 2019 18:42:28 +0900 Subject: [PATCH 1/2] Add documentation about Node generator --- _includes/creating-nodes-toc.html | 1 + _includes/docs-toc.html | 1 + docs/creating-nodes/index.md | 1 + docs/creating-nodes/node-generator.md | 552 ++++++++++++++++++++++++++ 4 files changed, 555 insertions(+) create mode 100755 docs/creating-nodes/node-generator.md diff --git a/_includes/creating-nodes-toc.html b/_includes/creating-nodes-toc.html index 8619bd8b..c3fbfed1 100644 --- a/_includes/creating-nodes-toc.html +++ b/_includes/creating-nodes-toc.html @@ -16,6 +16,7 @@
  • Help style guide
  • Packaging
  • Internationalisation
  • +
  • Node generator
  • diff --git a/_includes/docs-toc.html b/_includes/docs-toc.html index 35c4351f..f875a1ee 100644 --- a/_includes/docs-toc.html +++ b/_includes/docs-toc.html @@ -59,6 +59,7 @@
  • Configuration nodes
  • Packaging
  • Internationalisation
  • +
  • Node generator
  • diff --git a/docs/creating-nodes/index.md b/docs/creating-nodes/index.md index dab6cdf2..a4bdb4b5 100644 --- a/docs/creating-nodes/index.md +++ b/docs/creating-nodes/index.md @@ -19,6 +19,7 @@ The following sections exist and are largely complete: - [Help style guide](help-style-guide) - [Packaging](packaging) - [Internationalisation](i18n) + - [Node generator](node-generator) To do: diff --git a/docs/creating-nodes/node-generator.md b/docs/creating-nodes/node-generator.md new file mode 100755 index 00000000..79c7c719 --- /dev/null +++ b/docs/creating-nodes/node-generator.md @@ -0,0 +1,552 @@ +--- +layout: docs +toc: creating-nodes-toc.html +title: Node generator +--- + +The [Node generator](https://www.npmjs.com/package/node-red-nodegen) is a tool that can automatically generate an original node by using one command. +You can use Node generator to develop a custom node based on a function node and Open API document with a minimum of effort. +This page explains how to use this approach to node development. + +The general procedure for generating a node using Node generator is as follows: + +1. Install Node generator into local PC +2. Prepare or create source file (e.g. Open API document or JavaScript code in function node) +3. Use a Node generator command to generate the custom node. +4. Add a description, test cases, and other elements to the custom node. + +Using this tool enables automatic generation of the following files that make up an original node. +For this reason, the node developer can drastically reduce the man-hours for node development. + +* Original node (the node's js file, html file, node icon file, and language files) +* Files required to package an original node (README.md, package.json, LICENSE) +* Test cases + +The latest information about the node generator can be obtained from the GitHub project for the Node generator (https://github.com/node-red/node-red-nodegen). + +The following explains the steps in developing a custom node. +Note that this procedure assumes that you are using Node-RED installed in the local environment. + +### How to use Node generator +To install Node generator to your local PC, you need to input the following "npm install" command on command prompt (Windows) or terminal (macOS/Linux). +Because the command execution needs root permission, "sudo" is required before "npm install" command on macOS or Linux environment. + + npm install -g node-red-nodegen + +The current version of Node generator supports function node and Open API document as source files. +Simply, Node generator command, node-red-nodegen converts to a node from the file which is specified in the argument of the command as follows. + + node-red-nodegen -> The command tool outputs the node from the source file + +The following documentation explains methods of creating nodes from two types of source files. + + - [How to create a node from Open API document](#how-to-create-a-node-from-open-api-document) + - [How to create a node from function node](#how-to-create-a-node-from-function-node) + +### How to create a node from Open API document +You can specify the URL or file path of Open API document as the first argument of the node-red-nodegen command. + +(1) Generate node using node-red-nodegen command + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json + +Node-RED users typically import the generated node to the palette of Node-RED flow editor using the following procedures. + +(2) Change directory to the generated node's directory + + cd node-red-contrib-swagger-petstore + +(3) Prepare the symbolic link + + sudo npm link + +(4) Change current directory to Node-RED home directory (Typically, Node-RED home directory is ".node-red" under the home directory) + + cd ~/.node-red + +(5) Create a symbolic link + + npm link node-red-contrib-swagger-petstore + +(6) Start Node-RED + + node-red + +(7) Access the Node-RED flow editor (http://localhost:1880) + +-> You can see the generated node on the palette of the Node-RED flow editor. + +(8) Drag and drop the generated node to the workspace + +(9) Select a method on the node property setting + +(When the Open API document does not contain a hostname or has authentication settings, the node property will have a property to set hostname and authentication settings.) + +(10) Create flow on the Node-RED flow editor + +-> The flow which consists of inject node, the generated node and debug node are suitable for the first step. +(If the generated node uses POST method, you need to set JSON data to msg.payload of the inject node) + +(11) Run the flow + +-> In this example, After clicking the button on the inject node, you can get the received data on debug tab. + +### Command line options +If you want to customize the generated node, the following procedures and command line options will be helpful. + +#### Module name +Node generator uses "node-red-contrib-" as the default prefix of the module name. +Therefore, when the node name is "swagger-petstore", the module name becomes "node-red-contrib-swagger-petstore". +If you want to change the default module name, you can specify the module name using --module or --prefix option. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --module node-red-node-swagger-petstore + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --prefix node-red-node + +#### Node name +In the case of the node generated from Open API document, "info.title" value in Open API document is used as the generated node's name. +Node generator will replace uppercase characters and spaces with hyphens to convert appropriate name for npm module and Node-RED node. + +##### Example of Open API document +``` +{ + "swagger": "2.0", + "info": { + "description": "This is a sample server Petstore server.", + "version": "1.0.0", + "title": "Swagger Petstore", <- Node generator converts this value to "swagger-petstore" and uses it as node name. + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "host": "petstore.swagger.io", + "basePath": "/v2", + "schemes": [ + "https" + ], + ... +} +``` + +If you want to change the default name, you can set node name using --name option. +Especially, you need to specify node name using --name option when "info.title" value contains a double-byte character instead of alphabet and number because Node generator cannot create node correctly. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --name new-node-name + +#### Version +As the default, Node generator uses "info.version" value as the module version number. + +##### Example of Open API document +``` +{ + "swagger": "2.0", + "info": { + "description": "This is a sample server Petstore server.", + "version": "1.0.0", <- Node generator uses this version number as the module version number. + "title": "Swagger Petstore", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "host": "petstore.swagger.io", + "basePath": "/v2", + "schemes": [ + "https" + ], + ... +} +``` + +When you update the version number of the module without incrementing the version number in Open API document, you need to specify --version option. +Especially, conflict error will occur when you publish the module which has the same version number as the previously published module using "npm publish" command. +In this case, the --version option needs to be specified to update the version number of the module. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --version 0.0.2 + +#### Keywords +--keywords is a useful option for keywords of the module in the flow library. +On the flow library website, visitors will search the module using the keywords. +For example, if you want to use "petstore" as a keyword, you can specify the word using --keywords option. +By default, Node generator uses "node-red-nodegen" as a keyword. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --keywords petstore + +To add more than two keywords, you can also use comma-separated keywords. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --keywords petstore,petshop + +When "--keywords node-red" is specified before publishing the generated node, your node will be registered on the flow library and you can install the node via Node-RED flow editor. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --keywords petstore,petshop,node-red + +#### Category +On the palette of Node-RED flow editor, the generated node is in the function category as the default. +To change the category or use the product name, you can use --category option. +For example, the generated node which the following command outputs will be in the "analysis" category on the Node-RED flow editor. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --category analysis + +#### Node icon +Node generator command supports --icon option to specify icon file for the generated node. +You can use PNG file path or [file name of stock icons](https://nodered.org/docs/creating-nodes/appearance) for the option. The icon should have white on a transparent background. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --icon + +#### Node color +In the default, Node generator uses default node color defined in the node templates. If you need to change it, you can use the --color option of the command line. The option value should be the sequence of the hexadecimal numbers ("RRGGBB" formats) which represents node color. + + node-red-nodegen http://petstore.swagger.io/v2/swagger.json --color FFFFFF + +#### Node information in info tab +Node generator automatically generates the node information in the info tab using the following values in Open API document. + +- info.description : Node description +- paths.[path].[http method].summary : Method description +- paths.[path].[http method].operationId : Method name + +##### Example of Open API document +``` +{ + "swagger": "2.0", + "info": { + "description": "This is a sample server Petstore server.", <- Node generator uses this value as the node description. + "version": "1.0.0", + "title": "Swagger Petstore", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "host": "petstore.swagger.io", + "basePath": "/v2", + "schemes": [ + "https" + ], + ... + "paths": { + "/pet": { + "post": { + "tags": [ + "pet" + ], + "summary": "Add a new pet to the store", <- Node generator uses this value as the method description. + "description": "", + "operationId": "addPet", <- Node generator uses this value as the method name. + ... +} +``` + +If you want to modify node information in info tab, you can manually edit the node's HTML file at the end of the section. + + vi node-red-contrib-swagger-petstore/node.html + +```html: + +``` + +#### README +To explain the details of the node, you need to write documentation in README.md file. +The documentation will be used in the flow library website if you publish your node on the flow library. +Because the Node generator outputs the template file of README.md, you just modify it. + + vi node-red-contrib-swagger-petstore/README.md + +``` +node-red-contrib-swagger-petstore +===================== + +Node-RED node for swagger-petstore + +This is a sample server Petstore server. + +Install +------- + +Run the following command in your Node-RED home directory, typically `~/.node-red` + + npm install node-red-contrib-swagger-petstore +``` + +#### Test cases +The set of test cases is the most important to maintain the quality of the generated node in production use. +Node generator outputs the template file ("test/node_spec.js") of test cases into the generated directory. +You need to modify the following three lines, (1),(2) and (3) in the test case file. +If Open API document does not contain hostname in "info" section, you need to write hostname as (4) in each test case manually. + + vi node-red-contrib-swagger-petstore/test/node_spec.js + +```JavaScript: + it('should handle addPet()', function (done) { + var flow = [ + { id: 'n1', type: 'swagger-petstore', name: 'swagger-petstore', + method: 'addPet', + addPet_body: '', // (1) define node properties + wires: [['n3']] + }, + { id: 'n3', type: 'helper' } + ]; + helper.load(node, flow, function () { + var n3 = helper.getNode('n3'); + var n1 = helper.getNode('n1'); + n3.on('input', function (msg) { + try { + msg.should.have.property('payload', { "id": 4513 }); // (3) define output message + done(); + } catch (e) { + done(e); + } + }); + n1.receive({ payload: { "id": 4513 } }); // (2) define input message + }); + }); +``` + +In this example, the generated node sends data, "{ "id": 4513 }" to pet store REST API. +And then, REST API returns the same data, "{ "id": 4513 }". +You can run the test cases using the "npm test" command under the generated directory. + + cd node-red-contrib-swagger-petstore + npm install + npm test + +#### Message catalogs +As the default, Node generator outputs template files of English, Japanese, Chinese and German languages. +When you want to support internationalization of node properties, you need to add language messages of parameters into the files. + + vi node-red-contrib-swagger-petstore/locales/ja/node.json + +``` +{ + "SwaggerPetstore": { + "label": { + "service": "サービス", + "method": "メソッド", + "host": "ホスト", + "header": "ヘッダ", + "value": "値", + "isQuery": "クエリ" + }, + "status": { + "requesting": "要求中" + }, + "parameters": { + "addPet": "addPet", + "body": "body", + "updatePet": "updatePet", + "findPetsByStatus": "findPetsByStatus", + ... + "optionalParameters": "任意項目" + } + } +} +``` + +If your node does not support some languages, you can delete the language directory. +(For example, delete "zh-CN" directory, if you do not want to support the Chinese language in the node) + +### How to create a node from function node +After writing JavaScript code in a function node, you can export the JavaScript code as js file using "Save to Library..." menu in function node. +Because Node generator uses function node name as the generated node name, it is better to input node name before exporting the function node. +Node-RED saves the js file to the directory, "/.node-red/lib/functions/". +Therefore, you need to specify the directory and file path as the argument of the command line. + +(1) Export function node as a js file + +![Export function node](images/library.png) + +(2) Generate node using node-red-nodegen command + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js + +Node-RED users typically import generated node to the palette of Node-RED flow editor using the following procedures. + +(3) Change the current directory to generated node's directory + + cd node-red-contrib-lower-case + +(4) Prepare a symbolic link + + sudo npm link + +(5) Change directory to Node-RED home directory (Typically, Node-RED home directory is ".node-red" under the home directory) + + cd ~/.node-red + +(6) Create a symbolic link + + npm link node-red-contrib-lower-case + +(7) Start Node-RED + + node-red + +(8) Access the Node-RED flow editor (http://localhost:1880) + +-> You can see the generated node on the palette of the Node-RED flow editor. + +(9) Drag and drop the generated node to the workspace + +(10) Create flow on the Node-RED flow editor + +-> The flow which consists of inject node, the generated node and debug node are suitable for the first step. + +(11) Run the flow + +-> In this example, After clicking the button on the inject node, you can get the received data on debug tab. + +### Command line options +If you want to customize the generated node, the following procedures and command line options will be helpful. + +#### Module name +Node generator uses "node-red-contrib-" as default prefix of the module name. +Therefore, module name is "node-red-contrib-lower-case" when node name is "lower-case". +If you want to change the default module name, you can specify module name using --module or --prefix option. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --module node-red-node-lower-case + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --prefix node-red-node + +#### Node name +In the case of function node, node name in function node is used as the generated node's name. +If you want to change the default name, you can set node name using --name option. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --name new-node-name + +#### Version +As the default, the version number of the module is always "0.0.1". +When you update the version number of the module, you need to specify --version option. +Especially, conflict error will occur when you publish the module which has the same version number as the previously published module using "npm publish" command. +In this case, the --version option needs to be specified to update the version number of the module. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --version 0.0.2 + +#### Keywords +--keywords is a useful option for keywords of the module on flow library. +On the flow library website, visitors will search the module using the keywords. +For example, if you want to use "lower-case" as a keyword, you can specify the word using --keywords option. +As the default, Node generator uses "node-red-nodegen" as a keyword. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --keywords lower-case + +To add more than two keywords, you can also use comma-separated keywords. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --keywords lower-case,function + +When "--keywords node-red" is specified before publishing the generated node, your node will be registered on flow library and you can install the node via Node-RED flow editor. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --keywords lower-case,function,node-red + +#### Category +On the palette of Node-RED flow editor, the generated node is in the function category as the default. +To change the category or use product name, you can use --category option. +For example, the generated node which the following command outputs will be in the "analysis" category on Node-RED flow editor. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --category analysis + +#### Node icon +Node generator command supports --icon option to specify icon file for the generated node. +You can use PNG file path or [file name of stock icons](https://nodered.org/docs/creating-nodes/appearance) for the option. The icon should have white on a transparent background. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --icon + +#### Node color +In the default, Node generator uses default node color defined in the node templates. If you need to change it, you can use the --color option of the command line. The option value should be hexadecimal numbers ("RRGGBB" formats) which represent node color. + + node-red-nodegen ~/.node-red/lib/functions/lower-case.js --color FFFFFF + +#### Node information in info tab +Node generator outputs the template of node information into the node.html file. +You need to modify the template along with your node. +(Node developer will be able to use node description property to use node information in the future version of Node-RED and Node generator) + + vi node-red-contrib-lower-case/node.html + +```html: + +``` + +In the template, there are both a summary of the node and three sections. +Inputs section has properties information of inputted messages. +Outputs section has properties explanation of outputted messages. +Details section will contain additional information about the generated node. + +#### README +To explain the details of the node, you need to write documentation in README.md file. +The documentation will be used in the flow library website if you publish your node on npmjs. +Because Node generator outputs the README.md template file, you just modify it. + + vi node-red-contrib-lower-case/README.md + +``` +node-red-contrib-lower-case +===================== + +Node-RED node for lower case + +Install +------- + +Run the following command in your Node-RED home directory, typically `~/.node-red` + + npm install node-red-contrib-lower-case +``` + +#### Test cases +The set of test cases is the most important to maintain the quality of the generated node in production use. +Node generator outputs the template file of test cases into the file, "test/node_spec.js" under the generated directory. +You need to modify the following two lines, (1) and (2) in the test case file. + + vi node-red-contrib-lower-case/test/node_spec.js + +```JavaScript: + it('should have payload', function (done) { + var flow = [ + { id: "n1", type: "lower-case", name: "lower-case", wires: [["n2"]] }, + { id: "n2", type: "helper" } + ]; + helper.load(node, flow, function () { + var n2 = helper.getNode("n2"); + var n1 = helper.getNode("n1"); + n2.on("input", function (msg) { + msg.should.have.property('payload', 'abcd'); // (2) define output message + done(); + }); + n1.receive({ payload: "AbCd" }); // (1) define input message + }); + }); +``` + +In this example, the generated node converts upper case characters to lower case characters. +Therefore, the input message is "AbCd" and the output message is "abcd". +You can run the test cases using "npm test" command under the generated directory. + + cd node-red-contrib-lower-case + npm install + npm test From c09f70bf751d51450764678899dfa93b77161189 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Mon, 8 Apr 2019 18:45:19 +0900 Subject: [PATCH 2/2] Add library image --- docs/creating-nodes/images/library.png | Bin 0 -> 78388 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 docs/creating-nodes/images/library.png diff --git a/docs/creating-nodes/images/library.png b/docs/creating-nodes/images/library.png new file mode 100755 index 0000000000000000000000000000000000000000..6ee94cb383fbf010f25e240a47a057446b2c63a4 GIT binary patch literal 78388 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%0Duxi(<(K;nafT|NET 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