...
...
...
...
...
...
Introduction
...
Service-Oriented Architecture built using JavaScript (SOAJS). Its services can be combined to provide the functionality of a large software application. Each Service is a collection of APIs easily managed by SOAJS framework and productized with multitenant capability. Its embedded self-awareness makes it easier to scale both horizontally and vertically letting all services running on the cloud to communicate effortless and form a massive reliable and scalable infrastructure to empower the communication between the product frontend and backend. SOAJS comes with tons of features, implementing SOAJS framework means getting a boost start of at least 50%.
In this page we will introduce a simple hello world example that demonstrates how easy it is to build a micro-service on top of SOAJS.
A micro-service is a NodeJs server that uses express and listens on a certain port for arriving http traffic.
Hello World
...
The "hello world" service has one API and when called, this API returns two parameters: firstName & lastName in its response.
...
- index.js: contains the code of the service and the API implementation.
- config.js: contains the configuration of the service.
...
Code Block |
---|
...
|
...
...
|
...
language | js |
---|---|
title | service configuration object |
linenumbers | true |
...
| |
module.exports = { "type": 'service', "prerequisites": { "cpu": '', "memory": '' }, "serviceVersion": 1, "serviceName": "helloworld", |
...
"serviceGroup": "SOAJS Example |
...
Service", |
...
"requestTimeout": 30, "requestTimeoutRenewal": 5, "servicePort": 4020, |
...
"extKeyRequired": false, |
...
"oauth": false, "errors": {}, |
...
"schema": { |
...
"get": { |
...
"/hello": { |
...
"_apiInfo": { |
...
...
"l": "hello world", "group": |
...
"Example" }, "firstName": { |
...
"source": ['query.firstName'], |
...
"required": true, |
...
"validation": { |
...
"type": "string"
|
...
} }, "lastName": { |
...
"source": ['query.lastName'], |
...
"required": true, |
...
"validation": { |
...
"type": "string" } } } } } }; |
Code Block | ||
---|---|---|
| ||
'use strict'; const soajs = require('soajs'); const config = |
...
require('./config.js'); let service = new soajs.server.service(config); service.init(function() { service.get("/hello", function(req, res) { let name = req.soajs.inputmaskData.firstName + " " + req.soajs.inputmaskData.lastName; res.json(req.soajs.buildResponse(null, "Hello " + name)); }); service.start(); }); |
Simply create the service using SOAJS service constructor, pass along the configuration, initialize it and start implementing the APIs.
- soajs.server.service: used to declare a new service with SOAJS and requires the service configuration as a param. More information on what configuration can be provided is explained in Service section under documentation.
- req.soajs.inputmaskData: maps, format, validate all the inputs to the API and consolidates them regardless of the source they arrive from into one object inputmaskData. For additional information, check out IMFV section under documentation.
- buildResponse: used to build a standardized JSON response regardless of the data returned by your API. For more information check out SOAJS Response section under documenationdocumentation.
Now that you have an idea what a service looks like, let's run it and invoke its APIs.
Start the Service
...
The Hello World service is available under the soajs.examples repository and soajs framework configuration is available under soajs.utilities. In the previous page we showed you how to import the configuration for all Get Started Examples. repository, you need to go over the readme under soajs.examples to setup the environment
Now we will show you how to start the service and interact with it.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# go to examples/hello_world and start the service $ cd /opt/soajs/node_modules/soajs.examples/hello_world/ # start the soajs example environment sudo soajs services start --env=example # export necessary environment variables to create local awareness export SOAJS_PROFILE=/opt/soajs/node_modules/soajs.utilities/data/getStarted/profile.jsENV=EXAMPLE export SOAJS_SRVPORT=4020 export SOAJS_ENVDEPLOY_MANUAL=test1 export SOAJS_SRVIPREGISTRY_API=127.0.0.1:21000 # start service $ node . |
Test the Service
...
Once the service starts, run the following curl command that calls the API of your "hello world" service and check out the response returned.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
$ CURL -X GET "http://127.0.0.1:4020/hello?firstName=John&lastName=Doe" |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "result": true, "data": "Hello John Doe" } |
That's it!
Conclusion
...
As you can see, create a micro-service using SOAJS is straight forward and requires minimal effort to be completed.
...