generator-gmdotnetrest

1.1.0 • Public • Published

generator-gmdotnetrest

npm version

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": "user@user.com", "Password":"12345" }"

Do login.

  • POST for "api/token Body = { "Email": "user@user.com", "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.

Package Sidebar

Install

npm i generator-gmdotnetrest

Weekly Downloads

2

Version

1.1.0

License

ISC

Last publish

Collaborators

  • gabrielinaciodemello