All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Not yet!
- fixed bug when creating an api with auth settings
- New
add:micro
command that scaffolds a new microservice template as well as an ocelot gateway - New
port
property on thenew:api
template to let you customize and api or microservice port on localhost - Added
https
default on local - Added additional startup middleware
UseHsts
for non dev environmentsUseHttpsRedirection
with notes on even more secure options
- New
AuthorizationSettings
object and authorization based properties on the environments for thenew:api
andnew:micro
commands - Added new
GetEntity
andDeleteEntity
integration tests with and without auth - Added 401/403 response types to swagger comments when using auth
- Added auth to swagger setup
- note that secret is currently stored in appsettings
- Auth added to integration tests when required
- The
CurrentStartIndex
calculation in thePagedList
class was broken and now has a new calculation. - Added null conditional operator (
?.
) to certain tests before.Data
to make them fail more gracefully- Get{entity.Plural}_ReturnsSuccessCodeAndResourceWithAccurateFields()
- Put{entity.Name}ReturnsBodyAndFieldsWereSuccessfullyUpdated
- Cleaned up
WebApplicationFactory
to remove deprecated services. - Removed
[Collection(""Sequential"")]
from repo tests
- Internal tests now passing
- refactored out template drilling
- removed old auth debt from earlier alpha
- Removed the dependency on the foundation api template!
- Fixed
UseEnvironment
in WebAppFactory to useDevelopment
- Fixed integration tests to use the new
Response
wrapper - Updated pagination tests to have proper keys due to default sort order possibly breaking these tests
- XML comment info is now properly added to
WebApi.csproj
and the Swagger config - Extra line will no longer be added when no swagger contact url is provided
- Repository now sets default sort order for proper sql compatibility in lists (issue #9)
-
Added table name and schema properties to entity
-
Added column name attribute to entity properties
-
Added Serilog by default in all new projects. This includes Console and Seq logging by default in
Development
. For non-Development environments, you'll need to add whatever logging you're interested in to their respective app-settings projects. There are just too many options to create a whole API on top of Serilog. -
Updated swagger implementation from nswag
-
Added Consumes and Produces headers to the controller endpoints
-
Added an option to manage additional swagger settings to your API endpoints. This will be turned off by default for now as dealing the with xml docs path is potentially burdensome, but will add a lot of valuable details for users consuming your API. If you are looking to add additional XML details, this is highly recommended.
-
Added a custom Response Wrapper to the GET and POST endpoints
- Fixed launch settings to have null environment variable for Startup (Production). If you'd like to change this, be sure to update the appsetting lookup in
Program.cs
- Fixed POST endpoint that was lacking a
[FromBody]
marker BasePaginationParameters
will now haveMaxPageSizee
andDefaultPageSize
set asinternal
properties so they don't show up in swagger. These can be overridden in the distinct entity classes like so:internal override int MaxPageSize { get; } = 30;
- Fixed controllers to be able to handle a name and plural with the same value (e.g. Buffalo)
- Added
add:entities
alias for theadd:entity
command - Can now add Guid or other non-integer primary key
- Fixed bug where postgres library was getting added every time
- Seeder was not getting added to
StartupDevelopment
when usingadd:entity
command
- Async method in controller POST wasn't awaited
- Default
Startup.cs
class can now be configured using the reservedStartup
keyword
- Fixed
craftsman add:property -h
help text - The appsettings connection string will now escape backslash
- Foreign key using statement will now be dynamic on DTOs
- Added
new:webapi
alias that acts the same asnew:api
- Fixed
craftsman add:property -h
to point to the correct help page
- Updated the API to run on NET 5.0
- Pagination metadata enhancements on PagedList that is returned in GET list endpoint will now include more metadata for the current page including the current size as well as the start and end indices. I also removed the Next and Previous Page URI links to reduce complexity.
- Updated all controller calls to be asynchronous, including the get list
- Saves updated to be asynchronous
- One major capability I want to add into this is a good basis for auth generation. I've started to build this out, but it could (and very likely will) change drastically. With that said, I left it in as an alpha feature in case anyone is interested in trying it.
- Add Entity bug in repository fixed
- Fixed some builder options when not using auth