Microsoft/aspnet-api-versioning
### [`v3.1.0`](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/releases/v3.1.0)
[Compare Source](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/compare/v3.0.0...v3.1.0)
This is a minor release that primarily supports the _Endpoint Routing_ feature introduced in ASP.NET Core 2.2.
> This release will require you to upgrade to ASP.NET Core 2.2 if you haven't already
>
> #### Features
>
> The following are new features since 3.0.0:
>
> ##### ASP.NET Web API
>
> - Updated sample projects to:
> - Use OWIN self-hosting (much faster and easier to maintain than IIS Express)
> - Use the _SDK_ style project format
> - Use the most current C# language features
>
> ##### ASP.NET Core
>
> - Support _Endpoint Routing_ ([#413](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/issues/413))
> - All sample projects now use _Endpoint Routing_ by default
> - The _legacy_ routing system via **IRouter** is still supported
> - Support default parameters values in the API Explorer ([#414](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/issues/414))
> - Added **IApiControllerSpecification** to identify _API controllers_
> - The built-in **ApiBehaviorSpecification** matches controllers decorated with `[ApiController]`
```c#
interface IApiControllerSpecification
{
bool IsSatisfiedBy( ControllerModel controller );
}
```
##### ASP.NET Core with OData
- Added **ODataControllerSpecification** to identify OData controllers as _API controllers_
#### Fixes
The following are fixes and patches since 3.0.0:
##### ASP.NET Web API with OData
- Fixed exploring query options for `POST` when the controller action is not an EDM action
##### ASP.NET Core
- Fixed possible **NullReferenceException** with _Endpoint Routing_ in **ApiVersionRouteConstraint**
##### ASP.NET Core with OData
- Fixed exploring query options for `POST` when the controller action is not an EDM action
- Fixed a scenario where **ODataAttributeRouteInfo** was not generated for some actions
#### Breaking Changes
The following a behavioral breaking changes.
##### ASP.NET Core
- `ApiVersioningOptions.UseApiBehavior` is now `true` by default
- This _might_ result in excluding your API controllers if `[ApiController]` has not been applied
- If your API controllers use _convention-based_ routing, they will definitely be excluded because `[ApiController]` cannot be applied
- Resolutions:
1. Set `ApiVersioningOptions.UseApiBehavior = false`
2. Decorated your controllers with `[ApiController]`
3. Create a custom **IApiControllerSpecification** for your controllers and register it with `services.TryAddEnumerable(ServiceDescriptor.Transient());`
```c#
public class MyApiControllerSpec : IApiControllerSpecification
{
// consider all controllers that inherit from Controller to be a UI controller
readonly Type UIControllerType = typeof( Controller ).GetTypeInfo();
public bool IsSatisfiedBy( ControllerModel controller ) =>
!UIControllerType.IsAssignableFrom( controller.ControllerType )
}
```
> _Figure 1: Sample custom API specification_
>
> #### Known Issues
>
> The following are known issues in this release:
>
> ##### ASP.NET Core with OData
>
> - _Endpoint Routing_ is not supported
> - OData does not intrinsically support _Endpoint Routing_ ([OData/WebApi#1707](https://renovatebot.com/gh/OData/WebApi/issues/1707))
> - Disable _Endpoint Routing_ with `services.AddMvc( options => options.EnableEndpointRouting = false );`
### [`v3.0.0`](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/releases/v3.0.0)
[Compare Source](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/compare/v2.3.0...v3.0.0)
This marks the official release of 3.0. All of the Beta features and fixes roll up into this release. The delta from Beta 2 is primarily fixes and enhancements.
#### Features
The following are new features since 3.0.0 Beta 2:
##### All Platforms
- Updated NuGet packages to support [SourceLink](https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/sourcelink)
##### ASP.NET Web API with OData
- Support OData query options in API Explorer ([#400](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/issues/400))
- Added **OriginalTypeAttribute** to support resolving the original model **Type** after _substitution_
##### ASP.NET Core with OData
- Support OData query options in API Explorer ([#400](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/issues/400))
- Added **OriginalTypeAttribute** to support resolving the original model **Type** after _substitution_
#### Fixes
The following are fixes and patches since 3.0.0 Beta 2:
##### ASP.NET Core
- Fix exploring model bound **ApiVersion** parameter
##### ASP.NET Web API with OData
- Improve performance of API Explorer _Model Substitution_
- Fix exploring OData controllers by using **ODataRoutingAttribute** instead of the **ODataController** base class
- Fix generation of _substituted_ types by including attributes defined by the original type
##### ASP.NET Core with OData
- Improve performance of API Explorer _Model Substitution_
- Fix exploring OData controllers by using **ODataRoutingAttribute** instead of the **ODataController** base class
- Fix generation of _substituted_ types by including attributes defined by the original type
- Fix exploring model bound **ODataQueryOptions**, **ODataQueryOptions\\<T>**, and **ODataPath** parameters
- Correctly honor `[ApiExplorerSettings(IgnoreApi = false)]` ([#405](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/issues/405))
#### Miscellaneous
If you have cloned or forked this repository, the setups in the acceptance test suite have been refactored to maximize test server reuse. You can expect a 5-10x performance improvement in overall test run times.
#### Roadmap
The future roadmap currently only includes minor updates for ASP.NET Core. The 3.1 release will include support for the new _Endpoint Routing_ feature in ASP.NET Core 2.2. For the first time, API Versioning will require the minimum version of ASP.NET Core to be 2.2 or above. The _legacy_ method of routing will continue to be supported, but _Endpoint Routing_ will be the new default and preferred method of routing.
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Renovate Bot. View repository job log here.
This PR contains the following updates:
2.3.0
->3.1.1
Release Notes
Microsoft/aspnet-api-versioning
### [`v3.1.0`](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/releases/v3.1.0) [Compare Source](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/compare/v3.0.0...v3.1.0) This is a minor release that primarily supports the _Endpoint Routing_ feature introduced in ASP.NET Core 2.2. > This release will require you to upgrade to ASP.NET Core 2.2 if you haven't already > > #### Features > > The following are new features since 3.0.0: > > ##### ASP.NET Web API > > - Updated sample projects to: > - Use OWIN self-hosting (much faster and easier to maintain than IIS Express) > - Use the _SDK_ style project format > - Use the most current C# language features > > ##### ASP.NET Core > > - Support _Endpoint Routing_ ([#413](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/issues/413)) > - All sample projects now use _Endpoint Routing_ by default > - The _legacy_ routing system via **IRouter** is still supported > - Support default parameters values in the API Explorer ([#414](https://renovatebot.com/gh/Microsoft/aspnet-api-versioning/issues/414)) > - Added **IApiControllerSpecification** to identify _API controllers_ > - The built-in **ApiBehaviorSpecification** matches controllers decorated with `[ApiController]` ```c# interface IApiControllerSpecification { bool IsSatisfiedBy( ControllerModel controller ); } ``` ##### ASP.NET Core with OData - Added **ODataControllerSpecification** to identify OData controllers as _API controllers_ #### Fixes The following are fixes and patches since 3.0.0: ##### ASP.NET Web API with OData - Fixed exploring query options for `POST` when the controller action is not an EDM action ##### ASP.NET Core - Fixed possible **NullReferenceException** with _Endpoint Routing_ in **ApiVersionRouteConstraint** ##### ASP.NET Core with OData - Fixed exploring query options for `POST` when the controller action is not an EDM action - Fixed a scenario where **ODataAttributeRouteInfo** was not generated for some actions #### Breaking Changes The following a behavioral breaking changes. ##### ASP.NET Core - `ApiVersioningOptions.UseApiBehavior` is now `true` by default - This _might_ result in excluding your API controllers if `[ApiController]` has not been applied - If your API controllers use _convention-based_ routing, they will definitely be excluded because `[ApiController]` cannot be applied - Resolutions: 1. Set `ApiVersioningOptions.UseApiBehavior = false` 2. Decorated your controllers with `[ApiController]` 3. Create a custom **IApiControllerSpecification** for your controllers and register it with `services.TryAddEnumerable(ServiceDescriptor.TransientRenovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "
rebase!
".:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. View repository job log here.