generator-gmdotnetrest
v1.1.0
Published
My personal Yeoman generator for dotnet rest webapi projects
Downloads
6
Maintainers
Readme
generator-gmdotnetrest
My personal Yeoman generator for .Net Core REST WebApi projects.
This generator is used to create a basic REST api project, and add new domain entities to the project from a Json file. When new domain entity is added, the generator create all the necerary classes to manage and validate requests for /api/entity-name (GET, POST, PUT and DELETE).
The basic project generated uses:
MongoDB C# Driver - For MongoDB database.
Fluent Validation - For entities validation rules.
System.IdentityModel.Tokens.Jwt - For JWT Bearer authentication.
Create new project
Install Yeoman.
- npm install yo -g
Install generator.
- npm install generator-gmdotnetrest -g
Create new project.
- mkdir GeneratorTest
- cd GeneratorTest
- yo gmdotnetrest
Restore packages.
- dotnet restore
Start MongoDB Server.
Start project.
- dotnet run
- GET for "api/users" and receive 401 Unauthorized
Create new User.
- POST for "api/users Body = { "Name": "User", "Email": "[email protected]", "Password":"12345" }"
Do login.
- POST for "api/token Body = { "Email": "[email protected]", "Password":"12345" }" and receive a Token
Do a request with authorization header.
- GET for "api/users Header = { "Authorization": "Bearer 'Token Received' }" and receive 200
Have fun :)
Add new domain entity
Create a Json file like this: [ { "Name": "School", "Properties": [ { "Name": "Name", "Type": "string", "Required": [ true, "The name is required" ], "Length": [ 0, 10, "Name must be 10 characters or less" ] }, { "Name": "Email", "Type": "string", "Required": [ true, "The email is required" ], "IsEmail": [ true, "Invalid Email" ] } ], "Unique": [ [ "Email", "Name" ],"The email and name must be unique" ] }, { "Name": "Car", "Properties": [ { "Name": "Name", "Type": "string", "Required": [ true, "The name is required" ] }, { "Name": "Register", "Type": "int", "Required": [ true, "The register is required, do you understand ?" ] }, ], "Unique": [ [ "Register" ],"The Register must be unique" ] } ]
In the root of your project.
- yo gmdotnetrest:model "path of your JsonFile"
Now your new entities can be managed by
- api/Schools (GET, POST, PUT, DELETE)
- api/Cars (GET, POST, PUT, DELETE)
Future improvements
- Refactor code.
- Add option to create new domain entity without Controller and Validation classes.
- Support FK validation rules for entities.
- Support SQL databases.