Step By Step procedure to add a node module to a free apigee edge org (soap module added)

0 1 2,304

Below are the steps to add a node module to an apigee edge free org:

1] Create a node js app and select Hello world sample of node js apiproxy:

6124-screen-shot-2017-12-12-at-113542-pm.png

6125-screen-shot-2017-12-12-at-113620-pm.png

2] Once the apiproxy is created , create a package.json file with below contents:

6126-screen-shot-2017-12-12-at-113901-pm.png

3] Contents of package.json will be :

{
    "dependencies" : {
        "soap": ""
    }
}


The Develop tab in apiproxy will look like below:

6127-screen-shot-2017-12-12-at-112312-pm.png

As you can see above in the Scripts sections I have only :

==> hello-world.js

==> package.json

4]Once this is done run the management API call to check the node modules and dependencies:

[jagjyot@cmd ~]$ curl -v "https://api.enterprise.apigee.com/v1/organizations/weatherapi/apis/nodesoap/revisions/1/npm" -H "Content-Type: application/x-www-form-urlencoded" -d 'command=ls' -u $password_jagjyot
*   Trying 52.70.176.20...
* Connected to api.enterprise.apigee.com (52.70.176.20) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* ALPN/NPN, server did not agree to a protocol
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: CN=api.enterprise.apigee.com,O=Google Inc,L=Mountain View,ST=California,C=US
* 	start date: Sep 19 06:31:36 2017 GMT
* 	expire date: Sep 18 00:00:00 2018 GMT
* 	common name: api.enterprise.apigee.com
* 	issuer: CN=Google Internet Authority G2,O=Google Inc,C=US
* Server auth using Basic with user 'jagjyot@google.com'
> POST /v1/organizations/weatherapi/apis/nodesoap/revisions/1/npm HTTP/1.1
> Host: api.enterprise.apigee.com
> Authorization: Basic *************************
> User-Agent: curl/7.47.1
> Accept: */*
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 10
>
* upload completely sent off: 10 out of 10 bytes
< HTTP/1.1 500 Server Error
< Content-Type: text/plain
< Date: Tue, 12 Dec 2017 12:22:01 GMT
< Server: Apigee LB
< Content-Length: 188
< Connection: keep-alive
<
{
  "problems": [
    "missing: soap@, required by @"
  ],
  "dependencies": {
    "soap": {
      "required": "",
      "missing": true
    }
  }
}
npm ERR! missing: soap@, required by @
* Connection #0 to host api.enterprise.apigee.com left intact
[jagjyot@cmd ~]$

The above call is run with command=ls. This show the dependencies that need to be installed for this package.json. In this case the dependency is for soap module:

5] Run below call to install dependencies:

[jagjyot@cmd ~]$ curl -v "https://api.enterprise.apigee.com/v1/organizations/weatherapi/apis/nodesoap/revisions/1/npm" -H "Content-Type: application/x-www-form-urlencoded" -d 'command=install' -u $password_jagjyot
*   Trying 34.195.71.62...
* Connected to api.enterprise.apigee.com (34.195.71.62) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* ALPN/NPN, server did not agree to a protocol
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: CN=api.enterprise.apigee.com,O=Google Inc,L=Mountain View,ST=California,C=US
* 	start date: Sep 19 06:31:36 2017 GMT
* 	expire date: Sep 18 00:00:00 2018 GMT
* 	common name: api.enterprise.apigee.com
* 	issuer: CN=Google Internet Authority G2,O=Google Inc,C=US
* Server auth using Basic with user 'jagjyot@google.com'
> POST /v1/organizations/weatherapi/apis/nodesoap/revisions/1/npm HTTP/1.1
> Host: api.enterprise.apigee.com
> Authorization: Basic ***********************
> User-Agent: curl/7.47.1
> Accept: */*
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 15
>
* upload completely sent off: 15 out of 15 bytes
^@< HTTP/1.1 200 OK
< Access-Control-Allow-Headers: origin, x-requested-with, accept
< Access-Control-Allow-Methods: GET, PUT, POST, DELETE
< Access-Control-Allow-Origin: *
< Access-Control-Max-Age: 3628800
< Content-Type: application/json
< Date: Tue, 12 Dec 2017 12:22:47 GMT
< Server: Apigee LB
< Content-Length: 16452
< Connection: keep-alive
<
[
  {
    "name": "soap",
    "version": "0.23.0",
    "from": "soap@*",
    "dependencies": {
      "selectn": {
        "version": "0.9.6",
        "from": "selectn@>=0.9.6 <0.10.0",
        "dependencies": {}
      },
      "sax": {
        "version": "1.2.4",
        "from": "sax@>=0.6.0",
        "dependencies": {}
      },
      "uuid": {
        "version": "3.1.0",
        "from": "uuid@>=3.1.0 <4.0.0",
        "dependencies": {}
      },
      "ejs": {
        "version": "2.5.7",
        "from": "ejs@>=2.5.5 <2.6.0",
        "dependencies": {}
      },
      "debug": {
        "version": "2.6.9",
        "from": "debug@>=2.6.9 <3.0.0",
        "dependencies": {
          "ms": {
            "version": "2.0.0",
            "from": "ms@2.0.0",
            "dependencies": {}
          }
        }
      },
      "strip-bom": {
        "version": "0.3.1",
        "from": "strip-bom@>=0.3.1 <0.4.0",
        "dependencies": {
          "first-chunk-stream": {
            "version": "0.1.0",
            "from": "first-chunk-stream@>=0.1.0 <0.2.0",
            "dependencies": {}
          },
          "is-utf8": {
            "version": "0.2.1",
            "from": "is-utf8@>=0.2.0 <0.3.0",
            "dependencies": {}
          }
        }
      },
      "finalhandler": {
        "version": "1.1.0",
        "from": "finalhandler@>=1.0.3 <2.0.0",
        "dependencies": {
          "escape-html": {
            "version": "1.0.3",
            "from": "escape-html@>=1.0.3 <1.1.0",
            "dependencies": {}
          },
          "unpipe": {
            "version": "1.0.0",
            "from": "unpipe@>=1.0.0 <1.1.0",
            "dependencies": {}
          },
          "encodeurl": {
            "version": "1.0.1",
            "from": "encodeurl@>=1.0.1 <1.1.0",
            "dependencies": {}
          },
          "parseurl": {
            "version": "1.3.2",
            "from": "parseurl@>=1.3.2 <1.4.0",
            "dependencies": {}
          },
          "statuses": {
            "version": "1.3.1",
            "from": "statuses@>=1.3.1 <1.4.0",
            "dependencies": {}
          },
          "on-finished": {
            "version": "2.3.0",
            "from": "on-finished@>=2.3.0 <2.4.0",
            "dependencies": {
              "ee-first": {
                "version": "1.1.1",
                "from": "ee-first@1.1.1",
                "dependencies": {}
              }
            }
          }
        }
      },
      "bluebird": {
        "version": "3.5.1",
        "from": "bluebird@>=3.5.0 <4.0.0",
        "dependencies": {}
      },
      "xml-crypto": {
        "version": "0.8.5",
        "from": "xml-crypto@>=0.8.0 <0.9.0",
        "dependencies": {
          "xmldom": {
            "version": "0.1.19",
            "from": "xmldom@0.1.19",
            "dependencies": {}
          },
          "xpath.js": {
            "version": "1.0.7",
            "from": "xpath.js@>=0.0.3",
            "dependencies": {}
          }
        }
      },
      "concat-stream": {
        "version": "1.6.0",
        "from": "concat-stream@>=1.5.1 <2.0.0",
        "dependencies": {
          "inherits": {
            "version": "2.0.3",
            "from": "inherits@>=2.0.3 <3.0.0",
            "dependencies": {}
          },
          "typedarray": {
            "version": "0.0.6",
            "from": "typedarray@>=0.0.6 <0.0.7",
            "dependencies": {}
          },
          "readable-stream": {
            "version": "2.3.3",
            "from": "readable-stream@>=2.2.2 <3.0.0",
            "dependencies": {
              "process-nextick-args": {
                "version": "1.0.7",
                "from": "process-nextick-args@>=1.0.6 <1.1.0",
                "dependencies": {}
              },
              "util-deprecate": {
                "version": "1.0.2",
                "from": "util-deprecate@>=1.0.1 <1.1.0",
                "dependencies": {}
              },
              "string_decoder": {
                "version": "1.0.3",
                "from": "string_decoder@>=1.0.3 <1.1.0",
                "dependencies": {}
              },
              "isarray": {
                "version": "1.0.0",
                "from": "isarray@>=1.0.0 <1.1.0",
                "dependencies": {}
              },
              "core-util-is": {
                "version": "1.0.2",
                "from": "core-util-is@>=1.0.0 <1.1.0",
                "dependencies": {}
              },
              "safe-buffer": {
                "version": "5.1.1",
                "from": "safe-buffer@>=5.1.1 <6.0.0",
                "dependencies": {}
              }
            }
          }
        }
      },
      "serve-static": {
        "version": "1.13.1",
        "from": "serve-static@>=1.11.1 <2.0.0",
        "dependencies": {
          "escape-html": {
            "version": "1.0.3",
            "from": "escape-html@>=1.0.3 <1.1.0",
            "dependencies": {}
          },
          "encodeurl": {
            "version": "1.0.1",
            "from": "encodeurl@>=1.0.1 <1.1.0",
            "dependencies": {}
          },
          "parseurl": {
            "version": "1.3.2",
            "from": "parseurl@>=1.3.2 <1.4.0",
            "dependencies": {}
          },
          "send": {
            "version": "0.16.1",
            "from": "send@0.16.1",
            "dependencies": {
              "destroy": {
                "version": "1.0.4",
                "from": "destroy@>=1.0.4 <1.1.0",
                "dependencies": {}
              },
              "ms": {
                "version": "2.0.0",
                "from": "ms@2.0.0",
                "dependencies": {}
              },
              "range-parser": {
                "version": "1.2.0",
                "from": "range-parser@>=1.2.0 <1.3.0",
                "dependencies": {}
              },
              "fresh": {
                "version": "0.5.2",
                "from": "fresh@0.5.2",
                "dependencies": {}
              },
              "etag": {
                "version": "1.8.1",
                "from": "etag@>=1.8.1 <1.9.0",
                "dependencies": {}
              },
              "statuses": {
                "version": "1.3.1",
                "from": "statuses@>=1.3.1 <1.4.0",
                "dependencies": {}
              },
              "depd": {
                "version": "1.1.1",
                "from": "depd@>=1.1.1 <1.2.0",
                "dependencies": {}
              },
              "mime": {
                "version": "1.4.1",
                "from": "mime@1.4.1",
                "dependencies": {}
              },
              "on-finished": {
                "version": "2.3.0",
                "from": "on-finished@>=2.3.0 <2.4.0",
                "dependencies": {
                  "ee-first": {
                    "version": "1.1.1",
                    "from": "ee-first@1.1.1",
                    "dependencies": {}
                  }
                }
              },
              "http-errors": {
                "version": "1.6.2",
                "from": "http-errors@>=1.6.2 <1.7.0",
                "dependencies": {
                  "setprototypeof": {
                    "version": "1.0.3",
                    "from": "setprototypeof@1.0.3",
                    "dependencies": {}
                  },
                  "inherits": {
                    "version": "2.0.3",
                    "from": "inherits@2.0.3",
                    "dependencies": {}
                  }
                }
              }
            }
          }
        }
      },
      "lodash": {
        "version": "3.10.1",
        "from": "lodash@>=3.10.1 <4.0.0",
        "dependencies": {}
      },
      "request": {
        "version": "2.83.0",
        "from": "request@>=2.9.0",
        "dependencies": {
          "is-typedarray": {
            "version": "1.0.0",
            "from": "is-typedarray@>=1.0.0 <1.1.0",
            "dependencies": {}
          },
          "oauth-sign": {
            "version": "0.8.2",
            "from": "oauth-sign@>=0.8.2 <0.9.0",
            "dependencies": {}
          },
          "forever-agent": {
            "version": "0.6.1",
            "from": "forever-agent@>=0.6.1 <0.7.0",
            "dependencies": {}
          },
          "stringstream": {
            "version": "0.0.5",
            "from": "stringstream@>=0.0.5 <0.1.0",
            "dependencies": {}
          },
          "aws-sign2": {
            "version": "0.7.0",
            "from": "aws-sign2@>=0.7.0 <0.8.0",
            "dependencies": {}
          },
          "tunnel-agent": {
            "version": "0.6.0",
            "from": "tunnel-agent@>=0.6.0 <0.7.0",
            "dependencies": {}
          },
          "caseless": {
            "version": "0.12.0",
            "from": "caseless@>=0.12.0 <0.13.0",
            "dependencies": {}
          },
          "isstream": {
            "version": "0.1.2",
            "from": "isstream@>=0.1.2 <0.2.0",
            "dependencies": {}
          },
          "json-stringify-safe": {
            "version": "5.0.1",
            "from": "json-stringify-safe@>=5.0.1 <5.1.0",
            "dependencies": {}
          },
          "safe-buffer": {
            "version": "5.1.1",
            "from": "safe-buffer@>=5.1.1 <6.0.0",
            "dependencies": {}
          },
          "extend": {
            "version": "3.0.1",
            "from": "extend@>=3.0.1 <3.1.0",
            "dependencies": {}
          },
          "aws4": {
            "version": "1.6.0",
            "from": "aws4@>=1.6.0 <2.0.0",
            "dependencies": {}
          },
          "performance-now": {
            "version": "2.1.0",
            "from": "performance-now@>=2.1.0 <3.0.0",
            "dependencies": {}
          },
          "qs": {
            "version": "6.5.1",
            "from": "qs@>=6.5.1 <6.6.0",
            "dependencies": {}
          },
          "combined-stream": {
            "version": "1.0.5",
            "from": "combined-stream@>=1.0.5 <1.1.0",
            "dependencies": {
              "delayed-stream": {
                "version": "1.0.0",
                "from": "delayed-stream@>=1.0.0 <1.1.0",
                "dependencies": {}
              }
            }
          },
          "form-data": {
            "version": "2.3.1",
            "from": "form-data@>=2.3.1 <2.4.0",
            "dependencies": {
              "asynckit": {
                "version": "0.4.0",
                "from": "asynckit@>=0.4.0 <0.5.0",
                "dependencies": {}
              }
            }
          },
          "tough-cookie": {
            "version": "2.3.3",
            "from": "tough-cookie@>=2.3.3 <2.4.0",
            "dependencies": {
              "punycode": {
                "version": "1.4.1",
                "from": "punycode@>=1.4.1 <2.0.0",
                "dependencies": {}
              }
            }
          },
          "mime-types": {
            "version": "2.1.17",
            "from": "mime-types@>=2.1.17 <2.2.0",
            "dependencies": {
              "mime-db": {
                "version": "1.30.0",
                "from": "mime-db@>=1.30.0 <1.31.0",
                "dependencies": {}
              }
            }
          },
          "hawk": {
            "version": "6.0.2",
            "from": "hawk@>=6.0.2 <6.1.0",
            "dependencies": {
              "sntp": {
                "version": "2.1.0",
                "from": "sntp@>=2.0.0 <3.0.0",
                "dependencies": {}
              },
              "boom": {
                "version": "4.3.1",
                "from": "boom@>=4.0.0 <5.0.0",
                "dependencies": {}
              },
              "hoek": {
                "version": "4.2.0",
                "from": "hoek@>=4.0.0 <5.0.0",
                "dependencies": {}
              },
              "cryptiles": {
                "version": "3.1.2",
                "from": "cryptiles@>=3.0.0 <4.0.0",
                "dependencies": {
                  "boom": {
                    "version": "5.2.0",
                    "from": "boom@>=5.0.0 <6.0.0",
                    "dependencies": {}
                  }
                }
              }
            }
          },
          "http-signature": {
            "version": "1.2.0",
            "from": "http-signature@>=1.2.0 <1.3.0",
            "dependencies": {
              "assert-plus": {
                "version": "1.0.0",
                "from": "assert-plus@>=1.0.0 <2.0.0",
                "dependencies": {}
              },
              "jsprim": {
                "version": "1.4.1",
                "from": "jsprim@>=1.2.2 <2.0.0",
                "dependencies": {
                  "extsprintf": {
                    "version": "1.3.0",
                    "from": "extsprintf@1.3.0",
                    "dependencies": {}
                  },
                  "verror": {
                    "version": "1.10.0",
                    "from": "verror@1.10.0",
                    "dependencies": {
                      "core-util-is": {
                        "version": "1.0.2",
                        "from": "core-util-is@1.0.2",
                        "dependencies": {}
                      }
                    }
                  },
                  "json-schema": {
                    "version": "0.2.3",
                    "from": "json-schema@0.2.3",
                    "dependencies": {}
                  }
                }
              },
              "sshpk": {
                "version": "1.13.1",
                "from": "sshpk@>=1.7.0 <2.0.0",
                "dependencies": {
                  "getpass": {
                    "version": "0.1.7",
                    "from": "getpass@>=0.1.1 <0.2.0",
                    "dependencies": {}
                  },
                  "bcrypt-pbkdf": {
                    "version": "1.0.1",
                    "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0",
                    "dependencies": {}
                  },
                  "ecc-jsbn": {
                    "version": "0.1.1",
                    "from": "ecc-jsbn@>=0.1.1 <0.2.0",
                    "dependencies": {}
                  },
                  "jsbn": {
                    "version": "0.1.1",
                    "from": "jsbn@>=0.1.0 <0.2.0",
                    "dependencies": {}
                  },
                  "asn1": {
                    "version": "0.2.3",
                    "from": "asn1@>=0.2.3 <0.3.0",
                    "dependencies": {}
                  },
                  "dashdash": {
                    "version": "1.14.1",
                    "from": "dashdash@>=1.12.0 <2.0.0",
                    "dependencies": {}
                  },
                  "tweetnacl": {
                    "version": "0.14.5",
                    "from": "tweetnacl@>=0.14.0 <0.15.0",
                    "dependencies": {}
                  }
                }
              }
            }
          },
          "har-validator": {
            "version": "5.0.3",
            "from": "har-validator@>=5.0.3 <5.1.0",
            "dependencies": {
              "har-schema": {
                "version": "2.0.0",
                "from": "har-schema@>=2.0.0 <3.0.0",
                "dependencies": {}
              },
              "ajv": {
                "version": "5.5.1",
                "from": "ajv@>=5.1.0 <6.0.0",
                "dependencies": {
                  "co": {
                    "version": "4.6.0",
                    "from": "co@>=4.6.0 <5.0.0",
                    "dependencies": {}
                  },
                  "json-schema-traverse": {
                    "version": "0.3.1",
                    "from": "json-schema-traverse@>=0.3.0 <0.4.0",
                    "dependencies": {}
                  },
                  "fast-deep-equal": {
                    "version": "1.0.0",
                    "from": "fast-deep-equal@>=1.0.0 <2.0.0",
                    "dependencies": {}
                  },
                  "fast-json-stable-stringify": {
                    "version": "2.0.0",
                    "from": "fast-json-stable-stringify@>=2.0.0 <3.0.0",
                    "dependencies": {}
                  }
                }
              }
            }
          }
        }
      }
    }
  }
]
* Connection #0 to host api.enterprise.apigee.com left intact
[jagjyot@cmd ~]$

6] Above command will install all the dependencies now the Develop tab in the apiproxy will look like below:

6128-screen-shot-2017-12-12-at-112346-pm.png

7] In step 3 we saw two files now we do see the soap module installed as well:

As you can see above in the Scripts sections I have only :

==> hello-world.js

==> node_modules_soap.zip

==> package.json

This completes the installation of soap module for node js on a free org.

The above steps does not require an enterprise account. This is done on a free org "weatherapi"



Regards,

Jagjyot

Comments
brinda
New Member

Hi,

Do I need to add the version in package.json after I install SOAP?

I think something is still missing.

I am getting this error:

*** Starting script
*** syntax error
syntax error
    at module.js:439
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js:5
    at module.js:456
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/node_modules/request/node_modules/hawk/lib/index.js:5
    at module.js:456
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/node_modules/request/request.js:9
    at module.js:456
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/node_modules/request/index.js:143
    at module.js:456
    at module.j
s:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/lib/http.js:9
    at module.js:456
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/lib/client.js:9
    at module.js:456
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/lib/soap.js:8
    at module.js:456
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/node_modules/soap/index.js:3
    at module.js:456
    at module.js:474
    at module.js:356
    at module.js:312
    at module.js:364
    at require (module.js:380)
    at /organization/environment/api/hello-world.js:3
    at module.js:456
    at module.js:474
    at mo
dule.js:356
    at module.js:312
    at module.js:497
    at startup (trireme.js:142)
    at trireme.js:923
Version history
Last update:
‎12-12-2017 04:51 AM
Updated by: