Releases: janishar/nodejs-backend-architecture-typescript
Releases · janishar/nodejs-backend-architecture-typescript
Libraries & Docker Upgrades
"v1" in routes path is removed
In general APIs with v1 in the routes directory is not a good way to handle versioning. This has been removed from the project.
Now {host}/v1/login
will become {host}/login
2.0.0
This is major update to the project and not compatible with the version 1.x.x
Major Changes
- Redis Cache Implementation
- Upgraded to Mongoose 6.8.0
- static class member replace with module default exports
- All libraries are updated to latest version
- Change in project structure
- Addition of API endpoint permission system
- vscode task to generate template for route, models, and repository
Migrate to Authorization Bearer Scheme
- The headers for the protected APIs has been migrated to the standard
Authorization
header with theBearer
scheme. x-user-id
header has been removed.
Earlier:
GET /v1/profile/my
// Headers
x-api-key: GCMUDiuY5a7WvyUNt9n3QztToSHzK7Uj
Content-Type: application/json
x-access-token: <your_token_received_from_signup_or_login>
x-user-id: <your_user_id>
Now:
GET /v1/profile/my
// Headers
x-api-key: GCMUDiuY5a7WvyUNt9n3QztToSHzK7Uj
Content-Type: application/json
Authorization: Bearer <your_token_received_from_signup_or_login>
Clean interface naming convension
The naming convention has been changed for all the interfaces:
Earlier:
export interface IUser extends Document {
name: string;
...
}
const User = model<IUser>(DOCUMENT_NAME, schema, COLLECTION_NAME);
export default User;
Now:
IUser
→ User
and User
→ UserModel
export default interface User extends Document {
name: string;
...
}
export const UserModel = model<User>(DOCUMENT_NAME, schema, COLLECTION_NAME);
Similar changes for IApiKey
, IRole
, IKeystore
, and IBlog
Release Version 1.0.0
Update README.md