AI prompts
base on A multifunctional enterprise HTTP API project template based on modern approaches and the latest version of .NET 8. # Boilerplate: ASP.NET Core Web API application
A multifunctional enterprise HTTP API project template based on modern approaches and the latest version of .NET 8.
*Change `BoilerplateApi` to your project name.*
## Features Summary:
- ORM and Migrations by Entity Framework 8.0
- Authentication and authorization by ASP.NET Core Identity
- Logger by [Serilog](https://serilog.net/)
- Swagger by [Swashbuckle](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
- Tests by [xUnit](https://xunit.net/)
- Metrics for Prometheus by [prometheus-net](https://github.com/prometheus-net/prometheus-net)
- Docker
## .NET 8
The new .NET 8 version was released just a few weeks ago.
And the [Valletta Software](https://www.vallettasoftware.com/) team is already ready to develop and implement solutions for your business based on this modern stack.
## Entity Framework and Migrations
We use Entity Framework ORM as persistance layer, and the database structure is hold under control by Migrations.
Such approach allows us speed up and automate whole development process as much as possible.
You can make it as a part of any CI/CD process with no effort.
On the other hand, the database is safe. Keep in mind, it is the most important business part of the enterprise application.
## Authentication and authorization
An enterprise solutions require restricting access to specific functions through authentication and authorization.
There is ASP.NET Core Identity available out of the box. There are accounts, roles, and sessions.
## Logger
The logger is already provided. Use it both as the JSON records and the pure console text.
## Swagger
Swagger provides Web UI to explore and test the endpoints of the HTTP API.
It includes Authentication, as well.
## Tests
xUnit library is used for tests.
Tests are in a separate project, as they should not be shipped with the application.
## Metrics
Runtime application monitoring is a must-have tool for service control.
To service high loads, it is important to ensure horizontal and/or vertical scaling of the application.
The project already provides standard system metrics for Prometheus.
You are also free to add any business-specific metrics.
## Docker
Any modern application should support running in a container.
There is a Dockerfile ready to use.
", Assign "at most 3 tags" to the expected json: {"id":"7431","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"