Rename UseEndpointRouting to UseRouting (#4416)

This commit is contained in:
James Newton-King 2018-12-06 21:26:10 +13:00 committed by GitHub
parent 00cf0a4d7d
commit a07be53033
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 46 additions and 24 deletions

View File

@ -32,7 +32,7 @@ namespace MvcSandbox
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app) public void Configure(IApplicationBuilder app)
{ {
app.UseEndpointRouting(builder => app.UseRouting(builder =>
{ {
builder.MapGet( builder.MapGet(
requestDelegate: WriteEndpoints, requestDelegate: WriteEndpoints,

View File

@ -130,7 +130,7 @@ namespace Microsoft.AspNetCore.Builder
{ {
// Matching middleware has not been registered yet // Matching middleware has not been registered yet
// For back-compat register middleware so an endpoint is matched and then immediately used // For back-compat register middleware so an endpoint is matched and then immediately used
app.UseEndpointRouting(routerBuilder => app.UseRouting(routerBuilder =>
{ {
routerBuilder.DataSources.Add(mvcEndpointDataSource); routerBuilder.DataSources.Add(mvcEndpointDataSource);
}); });

View File

@ -21,7 +21,7 @@ namespace Benchmarks
public void Configure(IApplicationBuilder app) public void Configure(IApplicationBuilder app)
{ {
app.UseEndpointRouting(builder => app.UseRouting(builder =>
{ {
var endpointDataSource = new DefaultEndpointDataSource(new[] var endpointDataSource = new DefaultEndpointDataSource(new[]
{ {

View File

@ -43,4 +43,4 @@
</PropertyGroup> </PropertyGroup>
<Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " /> <Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
<PropertyGroup Label="Package Versions: Pinned" /> <PropertyGroup Label="Package Versions: Pinned" />
</Project> </Project>

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
@ -31,7 +31,7 @@ namespace RoutingSandbox
public void Configure(IApplicationBuilder app) public void Configure(IApplicationBuilder app)
{ {
app.UseEndpointRouting(builder => app.UseRouting(builder =>
{ {
builder.MapHello("/helloworld", "World"); builder.MapHello("/helloworld", "World");

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
@ -14,8 +14,20 @@ namespace Microsoft.AspNetCore.Builder
// Property key is used by MVC package to check that routing is registered // Property key is used by MVC package to check that routing is registered
private const string EndpointRoutingRegisteredKey = "__EndpointRoutingMiddlewareRegistered"; private const string EndpointRoutingRegisteredKey = "__EndpointRoutingMiddlewareRegistered";
public static IApplicationBuilder UseEndpointRouting(this IApplicationBuilder builder, Action<IEndpointRouteBuilder> configure) /// <summary>
/// Adds a <see cref="EndpointRoutingMiddleware"/> middleware to the specified <see cref="IApplicationBuilder"/>
/// with the <see cref="EndpointDataSource"/> instances built from configured <see cref="IEndpointRouteBuilder"/>.
/// </summary>
/// <param name="builder">The <see cref="IApplicationBuilder"/> to add the middleware to.</param>
/// <param name="configure">An <see cref="Action{IEndpointRouteBuilder}"/> to configure the provided <see cref="IEndpointRouteBuilder"/>.</param>
/// <returns>A reference to this instance after the operation has completed.</returns>
public static IApplicationBuilder UseRouting(this IApplicationBuilder builder, Action<IEndpointRouteBuilder> configure)
{ {
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
if (configure == null) if (configure == null)
{ {
throw new ArgumentNullException(nameof(configure)); throw new ArgumentNullException(nameof(configure));
@ -46,14 +58,24 @@ namespace Microsoft.AspNetCore.Builder
return builder.UseMiddleware<EndpointRoutingMiddleware>(middlewareEndpointDataSource); return builder.UseMiddleware<EndpointRoutingMiddleware>(middlewareEndpointDataSource);
} }
/// <summary>
/// Adds a <see cref="EndpointMiddleware"/> middleware to the specified <see cref="IApplicationBuilder"/>.
/// </summary>
/// <param name="builder">The <see cref="IApplicationBuilder"/> to add the middleware to.</param>
/// <returns>A reference to this instance after the operation has completed.</returns>
public static IApplicationBuilder UseEndpoint(this IApplicationBuilder builder) public static IApplicationBuilder UseEndpoint(this IApplicationBuilder builder)
{ {
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
VerifyRoutingIsRegistered(builder); VerifyRoutingIsRegistered(builder);
if (!builder.Properties.TryGetValue(EndpointRoutingRegisteredKey, out _)) if (!builder.Properties.TryGetValue(EndpointRoutingRegisteredKey, out _))
{ {
var message = $"{nameof(EndpointRoutingMiddleware)} must be added to the request execution pipeline before {nameof(EndpointMiddleware)}. " + var message = $"{nameof(EndpointRoutingMiddleware)} must be added to the request execution pipeline before {nameof(EndpointMiddleware)}. " +
$"Please add {nameof(EndpointRoutingMiddleware)} by calling '{nameof(IApplicationBuilder)}.{nameof(UseEndpointRouting)}' inside the call to 'Configure(...)' in the application startup code."; $"Please add {nameof(EndpointRoutingMiddleware)} by calling '{nameof(IApplicationBuilder)}.{nameof(UseRouting)}' inside the call to 'Configure(...)' in the application startup code.";
throw new InvalidOperationException(message); throw new InvalidOperationException(message);
} }
@ -74,4 +96,4 @@ namespace Microsoft.AspNetCore.Builder
} }
} }
} }
} }

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
@ -21,13 +21,13 @@ namespace Microsoft.AspNetCore.Builder
public class EndpointRoutingApplicationBuilderExtensionsTest public class EndpointRoutingApplicationBuilderExtensionsTest
{ {
[Fact] [Fact]
public void UseEndpointRouting_ServicesNotRegistered_Throws() public void UseRouting_ServicesNotRegistered_Throws()
{ {
// Arrange // Arrange
var app = new ApplicationBuilder(Mock.Of<IServiceProvider>()); var app = new ApplicationBuilder(Mock.Of<IServiceProvider>());
// Act // Act
var ex = Assert.Throws<InvalidOperationException>(() => app.UseEndpointRouting(builder => { })); var ex = Assert.Throws<InvalidOperationException>(() => app.UseRouting(builder => { }));
// Assert // Assert
Assert.Equal( Assert.Equal(
@ -55,14 +55,14 @@ namespace Microsoft.AspNetCore.Builder
} }
[Fact] [Fact]
public async Task UseEndpointRouting_ServicesRegistered_NoMatch_DoesNotSetFeature() public async Task UseRouting_ServicesRegistered_NoMatch_DoesNotSetFeature()
{ {
// Arrange // Arrange
var services = CreateServices(); var services = CreateServices();
var app = new ApplicationBuilder(services); var app = new ApplicationBuilder(services);
app.UseEndpointRouting(builder => { }); app.UseRouting(builder => { });
var appFunc = app.Build(); var appFunc = app.Build();
var httpContext = new DefaultHttpContext(); var httpContext = new DefaultHttpContext();
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Builder
} }
[Fact] [Fact]
public async Task UseEndpointRouting_ServicesRegistered_Match_DoesNotSetsFeature() public async Task UseRouting_ServicesRegistered_Match_DoesNotSetsFeature()
{ {
// Arrange // Arrange
var endpoint = new RouteEndpoint( var endpoint = new RouteEndpoint(
@ -89,7 +89,7 @@ namespace Microsoft.AspNetCore.Builder
var app = new ApplicationBuilder(services); var app = new ApplicationBuilder(services);
app.UseEndpointRouting(builder => app.UseRouting(builder =>
{ {
builder.DataSources.Add(new DefaultEndpointDataSource(endpoint)); builder.DataSources.Add(new DefaultEndpointDataSource(endpoint));
}); });
@ -133,7 +133,7 @@ namespace Microsoft.AspNetCore.Builder
var app = new ApplicationBuilder(services); var app = new ApplicationBuilder(services);
app.UseEndpointRouting(builder => { }); app.UseRouting(builder => { });
app.UseEndpoint(); app.UseEndpoint();
var appFunc = app.Build(); var appFunc = app.Build();
@ -147,7 +147,7 @@ namespace Microsoft.AspNetCore.Builder
} }
[Fact] [Fact]
public void UseEndpointRouting_CallWithBuilder_SetsEndpointDataSource() public void UseRouting_CallWithBuilder_SetsEndpointDataSource()
{ {
// Arrange // Arrange
var matcherEndpointDataSources = new List<EndpointDataSource>(); var matcherEndpointDataSources = new List<EndpointDataSource>();
@ -165,13 +165,13 @@ namespace Microsoft.AspNetCore.Builder
var app = new ApplicationBuilder(services); var app = new ApplicationBuilder(services);
// Act // Act
app.UseEndpointRouting(builder => app.UseRouting(builder =>
{ {
builder.Map("/1", "Test endpoint 1", d => null); builder.Map("/1", "Test endpoint 1", d => null);
builder.Map("/2", "Test endpoint 2", d => null); builder.Map("/2", "Test endpoint 2", d => null);
}); });
app.UseEndpointRouting(builder => app.UseRouting(builder =>
{ {
builder.Map("/3", "Test endpoint 3", d => null); builder.Map("/3", "Test endpoint 3", d => null);
builder.Map("/4", "Test endpoint 4", d => null); builder.Map("/4", "Test endpoint 4", d => null);

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
@ -35,7 +35,7 @@ namespace RoutingWebSite
public void Configure(IApplicationBuilder app) public void Configure(IApplicationBuilder app)
{ {
app.UseEndpointRouting(routes => app.UseRouting(routes =>
{ {
routes.MapHello("/helloworld", "World"); routes.MapHello("/helloworld", "World");
@ -126,7 +126,7 @@ namespace RoutingWebSite
private void SetupBranch(IApplicationBuilder app, string name) private void SetupBranch(IApplicationBuilder app, string name)
{ {
app.UseEndpointRouting(routes => app.UseRouting(routes =>
{ {
routes.MapGet("api/get/{id}", (context) => context.Response.WriteAsync($"{name} - API Get {context.GetRouteData().Values["id"]}")); routes.MapGet("api/get/{id}", (context) => context.Response.WriteAsync($"{name} - API Get {context.GetRouteData().Values["id"]}"));
}); });