https://github.com/zowe/sample-node-api
A sample node js api for finding cars and accounts for a dealership
https://github.com/zowe/sample-node-api
Last synced: 8 months ago
JSON representation
A sample node js api for finding cars and accounts for a dealership
- Host: GitHub
- URL: https://github.com/zowe/sample-node-api
- Owner: zowe
- License: epl-2.0
- Created: 2019-02-18T15:08:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T03:09:41.000Z (over 3 years ago)
- Last Synced: 2024-03-22T02:01:04.686Z (over 2 years ago)
- Language: JavaScript
- Size: 880 KB
- Stars: 80
- Watchers: 5
- Forks: 146
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sample-node-api
A sample node js api for finding cars and accounts for a dealership,its used here to demonstrate the steps to extend API/ML with your own rest api.
## Steps
**Note**
`Only rest api with https support can be deployed behind API/ML, make sure to enable https support in your rest api.
`
This sample express app, has https enabled already.
## PART I: Download & Build on local
## Method 1: From github
### 1) Clone the repository, install node packages and verify routes locally
```
//on local
git clone https://github.com/zowe/sample-node-api
cd sample-node-api
npm install
npm start
```
Open your local browser and verify the sample-node-api is working by accessing:
`http://localhost:18000/accounts/`
`http://localhost:18000/accounts/1`
`http://localhost:18000/accounts/1/cars/`
### 2) Transfer project files from local to remote host
**Note**
The `node_modules` folder will not be transferred, we can do npm install later on remote server itself to pull down required node packages
```
cd sample-node-api
npm run build
scp -r dist ibmuser@my.mainframe.com:/sample-node-api
```
For the next step, ensure that you have node installed on z/OS and your PATH includes nodejs/bin directory.
```
ssh ibmuser@my.mainframe.com
. ~/.profile - (Skip if you can already run "npm" on z/OS)
cd /sample-node-api
npm install
```
## Method 2: From Artifactory
### 1) Download latest pax from artifactory
Get latest package from [artifactory](https://zowe.jfrog.io/artifactory/libs-snapshot-local/org/zowe/sample-node-api/1.0.0-SNAPSHOT)
Choose the latest pax build provided from the link above and download it into your local storage.
### 2) Transfer and unpax on z/OS
```
sftp ibmuser@mymainframe.ibm.com
put .pax
```
## PART II: Deploy with Zowe on server
### 1) login
```
ssh ibmuser@my.mainframe.com
```
### 2) install component using zowe-install-component.sh script
```
.//bin/zowe-install-component.sh -d -i -o -l
```
```
- Directory that will hold all external extensions installed onto zowe
- Current installed Zowe's instance directory
- The path to the component being installed (the component file transferred from local to z/OS in PART I)
- Directory that will hold the logs of the component installation
```
### 3) Lifecycle scripts of the component
We expect following in service folder `start.sh`. In our case its bin folder with relevant scripts.
`start.sh` starts node app on configured port
`env.sh` its custom script use to configure port for our node app, feel free to use your desired way
### 4) Access newly deployed webservice
Please see static definition file `sample-node-api.yml`
It configures service endpoint as `sample-node-api` with property `serviceId`
We also provide api gateway base path `api\v1` with property `gatewayUrl` in same file.
In effect, service can be accessed with following url:
`https://{host}:{GATEWAY_PORT}/{gatewayUrl}/{serviceId}/*`
where `GATEWAY_PORT` is configured in $INSTANCE_DIR/instance.env
Verify by accessing following:
`https://my.mainframe.com:7554/api/v1/sample-node-api/accounts/`
`https://my.mainframe.com:7554/api/v1/sample-node-api/accounts/1/`
`https://my.mainframe.com:7554/api/v1/sample-node-api/accounts/1/cars/`
### 5) Registered With API Catalog
**API Catalog**


**Discovery Service Dashboard**
