NodeAPI
is REST API server implementation built on top Node.js
and Express.js
with Mongoose.js
for MongoDB
integration. Access control follows OAuth 2.0
spec with the help of OAuth2orize
and Passport.js
.
This is updated code that follows RESTful API With Node.js + MongoDB article.
You need to have Node.js and MongoDB installed.
# Update Homebrew before installing all dependencies
brew update
# Install Node (+npm) with Homebrew
brew install node
# Install npm dependencies in project folder
npm install
# Install MongoDB with Homebrew
brew tap mongodb/brew
brew install mongodb-community
# Create directory for MongoDB data
mkdir -p ./data/mongo
# Run MongoDB daemon process with path to data directory
mongod --dbpath ./data/mongo
npm start
# alias for
node bin/www
npm run-script generate
# alias for
node generateData.js
You need to have Docker installed.
docker-compose up -d --build
docker exec nodeapi_node_api_1 node generateData.js
Create and refresh access tokens:
http POST http://localhost:1337/api/oauth/token grant_type=password client_id=android client_secret=SomeRandomCharsAndNumbers username=myapi password=abc1234
http POST http://localhost:1337/api/oauth/token grant_type=refresh_token client_id=android client_secret=SomeRandomCharsAndNumbers refresh_token=[REFRESH_TOKEN]
Create your article data:
http POST http://localhost:1337/api/articles title='New Article' author='John Doe' description='Lorem ipsum dolar sit amet' images:='[{"kind":"thumbnail", "url":"http://habrahabr.ru/images/write-topic.png"}, {"kind":"detail", "url":"http://habrahabr.ru/images/write-topic.png"}]' Authorization:'Bearer ACCESS_TOKEN'
Update your article data:
http PUT http://localhost:1337/api/articles/EXISTING_ARTICLE_ID title='Updated Article' author='Jane Doe' description='This is now updated' Authorization:'Bearer ACCESS_TOKEN'
Get your data:
http http://localhost:1337/api/users/info Authorization:'Bearer ACCESS_TOKEN'
http http://localhost:1337/api/articles Authorization:'Bearer ACCESS_TOKEN'
npm test
# alias for
node ./test/server.test.js
Some of non-standard modules used:
Test modules:
- httpie - command line HTTP client
npm install jshint -g
jshint libs/**/*.js generateData.js
Created and maintained by Evgeny Aleksandrov (@ealeksandrov).
Updated by:
- Istock Jared
- Marko Arsić
- and other contributors
NodeAPI
is available under the MIT license. See the LICENSE.md file for more info.