Skip to content

Convention-Based Action Routes Do Not Return 400 as Expected #26

Closed
@commonsensesoftware

Description

@commonsensesoftware

Controllers that use convention-based routing do not always return 400 for actions that match in some API versions, but not others.

For example:

[ApiVersion( "1.0" )]
public class MyController : ApiController
{
   public IHttpActionResult Get() => Ok();
}
[ApiVersion( "2.0" )]
public class My2Controller : ApiController
{
   public IHttpActionResult Get() => Ok();
   public IHttpActionResult Patch() => StatusCode( HttpStatusCode.NoContent );
}
[ApiVersion( "3.0" )]
public class My3Controller : ApiController
{
   public IHttpActionResult Get() => Ok();
}

The requested routes should produce the following results:

Request Expected Result Actual Result
PATCH /my?api-version=1.0 400 404
PATCH /my?api-version=2.0 204 204
PATCH /my?api-version=3.0 400 404

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions