Academic purpose
- Node
- NPM, built into Node.
- MongoDB or MondoDB Atlas
- Postman or Insomnia or any client api rest.
> git clone https://github.com/jestrade/api-twitter.git> cd api-twitter> npm i- Configuration Example:
- HTTP_HOST -> IP of server, default is 127.0.0.1.
- HTTP_PORT -> Node listening port, default is 3000.
- LOG_ACCESS -> Path where the logs will be stored, don't specify the path, just the file name, default
access.log. - JWTKEY -> Is used by JWT to sign the token.
- APIWEATHERKEY -> Is used to consume the API.
- DB_CONNECTION_STRING -> Connection string to connect mongodb database
- SALT_ROUNDS -> Controls how much time is needed to calculate a single BCrypt hash, default is 10.
- MAILER_HOST -> xx
- MAILER_PORT -> xx
- MAILER_USER -> xx
- MAILER_PASSWORD -> xx
- MAIL_FROM -> xx
- TWITTER_CONSUMER_KEY -> xx
- TWITTER_CONSUMER_SECRET -> xx
- TWITTER_TOKEN_KEY -> xx
- TWITTER_TOKEN_SECRET -> xx
Example connection string local, more info. MongoDB.
mongodb://username:password@host:port/databaseExample connection string in cloud, more info MondoDB Atlas.
mongodb+srv://<username>:<password>@cluster0.rwp0b.mongodb.net/myFirstDatabase?retryWrites=true&w=majorityRename .env.example to .env, and set parameters required, please dont include env:.
env:
# This is parameters required.
HTTP_HOST=
HTTP_PORT=
LOG_ACCESS=
JWTKEY=
APIWEATHERKEY=
DB_CONNECTION_STRING=
SALT_ROUNDS=
MAILER_HOST=
MAILER_PORT=
MAILER_USER=
MAILER_PASSWORD=
MAIL_FROM=
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_TOKEN_KEY=
TWITTER_TOKEN_SECRET=> npm i --save-dev nodemon> npm run seedsRun project without nodemon
> npm startRun project with nodemon
> npm run dev> npm run testdomain/api/*
´´´ headers: { x-access-token: "" } ´´´
| Methods | ||||
| URL | GET | POST | PUT | DELETE |
| / | error | error | error | error |
| /users | List all users
|
Create user
body:
|
error | Delete user
body:
|
| /users/:id | Display user information: id
|
error | Update user: id
|
error |
| /users/login | error | Authenticate user
|
error | error |
| /tweets | List all tweets
|
Create tweet
body:
|
error | Delete tweet
body:
|
| /tweets/:id | List tweet info and comments
|
error | error | error |
| /tweets/comments | error | Create tweet
body:
|
error | Delete tweet
body:
|
| /tweets/likes | error | error | Create tweet
body:
|
error |
| /tweets/comments/:id | error | error | ||
| /tweets/external/:username | Get tweets from real Twitter | error | error | |
| /weather/:city | Get weather from city
|
error | error | error |
| /tasks | List all tasks
|
Create task
body:
|
error | Delete task
body:
|