Visual Studio project template for Web Api .NET Core solutions 3.1
This Visual Studio extension provides an effective and quick start for .NET Core REST Web API service as an extensible solution which saves many hours of exploring the Web for an optimal solution. Save your precious time with this template, click, build and enjoy your life!
Three steps only to create fully functional REST API:
- install the extension,
- update API appsettings.json with Data Source if not SQLEXPRESS and
- run created solution/service which initiates migration/seed services to get the API service info page
In extended vsix version additionally you can:
- run successfully default scaffold tests in XUnit integration tests project,
- test API with Swagger API specification link on API service info page using test credentials firstname.lastname@example.org mysecretpassword123 to get security token,
- extend and customize you API solution by using T4 templates to scaffold 600+ lines of code (for api, controler, domain and test layers) per added entity class; just compile your solution, add new db migration and run successfully T4 generated tests,
- import to Postman generated API tests as json file, use Newman command line and
- have stored procedure implementation example
Core features version
- Three layers projects Api, Domain and Entity
- Dependency Injection (.Net Core feature)
- Generic Service
- Generic Repository with Entity Framework
- EF lazy loading and DB concurrency errors
- Sync and Async calls
- Generic exception handler
- Serilog logging with Console and File sinks
- Migrations and seed from json objects build your empty database
- JWT authorization/authentication for generated API
- T4 templates - simple code generation for domain and service classes
Extended features version
- All core features included.
- Swagger and Swashbuckle API documentation for .NET Core and Swagger authentication
- Select between Indentity Server 4 or JWT authorization/authentication for generated API
- T4 templates - smart code generation driven by existing entity classes (inherits from BaseEntity). T4 templates generate code for related domain, service, controller, test classes and set db migration based on added entity classes in single click. Great time saver!
- XUnit integration tests project added to the solution for IS4 mode or JWT authentication mode.
- Postman API tests as json file for import (IS4 and JWT tests). Import json and run the tests.
- PowerShell script with Newman command line implementation
- Stored procedure example added to repository
Only four simple steps to extend original solution with your new entity and all the plumbing necessary for an REST API:
- INSTAL THE EXTENSION
- RUN REST API SERVICE OR RUN TESTS
- ADD CUSTOM ENTITY CLASS(ES)
- RUN T4 CODE GENERATOR TO SCAFFOLD ALL SUPPORTING CODE
- Version 4.1 (Initial)
- Version 4.2 (Added a service API versioning library for Microsoft ASP.NET Core and Swagger versioning)
- Version 4.3 (Added CodeGeneratorUtility.bat to execute all T4s)
- Version 4.4 (Update to .NET Core 3.1 - LTS version )
- Version 4.5 (Automapper v.9.0 with DI)
- Version 4.6 (EF add migration fix)
- Version 4.7 (updated to Swashbuckle.AspNetCore Version=5.0.0)
- Version 4.8 (added stored procedure example) (only extended version)
- Version 4.9 (fixed the issue with using a dot in a solution name)
- Version 5.1 (fixed the naming issues, updated solution's packages to the latest versions,IdentityServer4 updates)
- Version 5.2 (added Powershell script to run Postman tests with Newman creating htlm reports and sending an email with attached reports) (only extended version)
- Version 5.3 (added db migration to T4 automation)(only extended version)
For instructions and more about free and full-featured VSIX extension visit: www.anasoft.net/apincore
More extensions with more features:
Please give us your rating and ask for more features.
Note that there is no restriction to use, copy, modify, and distribute software created with this Visual Studio extension template.
Created solution using this template may contain code with unintentional flaws or limitations. Please adjust created solution to your needs and test it before any production use.
IN NO EVENT SHALL OWNER OF THIS EXTENSION BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE OWNER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.