Openbazaar API client for Nodejs.
// include the modulevar OpenBazaarAPI = ;// create a new instancevar ob ="username": "chris_grimmett" // the username to your openbazaar server"password": "rosebud" // the password to your openbazaar server"proto": "https" // optional. defaults to http"host" : "localhost" // optional. defaults to 127.0.0.1"port" : "18469" // optional. defaults to 18469;// log into your openbazaar serverob;
- implement full API
(Because I forget!)
I'm using node foreman to set environment variables. I keep a
.env file with environment variables; it is ignored by git and not in this repository.
I wrote the tests to be flexible with server mocking. I test two different ways. One is running Drakov in the foreground.
Drakov runs in the foreground in a second terminal--
drakov -f ./spec.md -p 3000 --watch
And in my main terminal, I run
I do this while I develop locally so I can see that Drakov is responding to the API queries as expected during the mocha tests.
I can also test against a live openbazaar server, by these environment variables in
OB_USERNAME=chris_grimmett OB_PASSWORD=rosebud OB_HOST=192.168.1.24 OB_PORT=18469 #OB_LIVE_TEST=1
The OB_LIVE_TEST is what tells the mocha test to run against a live OpenBazaar server. I just comment or uncomment that line depending on what type of test I want to run.
When Travic-CI runs the test,
TRAVIS is set in the environment. Mocha sees this environment variable, and calls Drakov from within the test.
If you get something like "Cannot POST /api/v1/login" in the body of the response from Drakov or OpenBazaar-Server, it means your request isn't matching the OpenBazaar-Server spec (see spec.md). Maybe you aren't sending the username and password as a querystring in the body? Maybe you are sending the wrong username and password? (Drakov requires username:test password:test.) See
blobs/example-curl-trace.txt for an example of how a good request looks. You can also use the node module,
request-debug to see what your request is sending.
[Error: socket hang up]
If you get the above error when trying to use the API against a live OpenBazaar-Server, check your server configuration. If SSL is enabled on your OpenBazaar-Server, but you have your API set to use HTTP, you will see the above error. In your API environment variables, add
Error: Hostname/IP doesn't match certificate's altnames: "IP: xxx.xxx.xxx.xxx is not in the cert's list:
If you followed the OpenBazaar team's guide on setting up SSL, that guide doesn't have you pay any attention to seting SSL CA names, localities, etc. Because of that, your CA has no altnames, which node uses to check and see if it is talking to the correct server. To get past this error in a secure fashion, you will need to create a new SSL certificate with a subjectAltName (SAN). See https://wiki.cacert.org/FAQ/subjectAltName