BufTools.AspNet.EndpointReflection
2.0.0
Prefix Reserved
dotnet add package BufTools.AspNet.EndpointReflection --version 2.0.0
NuGet\Install-Package BufTools.AspNet.EndpointReflection -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BufTools.AspNet.EndpointReflection" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BufTools.AspNet.EndpointReflection --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: BufTools.AspNet.EndpointReflection, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install BufTools.AspNet.EndpointReflection as a Cake Addin #addin nuget:?package=BufTools.AspNet.EndpointReflection&version=2.0.0 // Install BufTools.AspNet.EndpointReflection as a Cake Tool #tool nuget:?package=BufTools.AspNet.EndpointReflection&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Endpoint Reflection
Combines reflection and XML comment parsing to put endpoint details at your fingertips.
var endpoints = assembly.GetEndpoints();
Provides:
- Route & Verb
- Useable example route with route params filled in XML examples
- Endpoint method details
- XML comments
- Validation of XML comments with suggestions on how to fix errors
Getting Started
- Grab the assembly that contains endpoints you want to reflect:
var assembly = typeof(SomeClassInYourProject).Assembly;
- There are many standard ways to grab the Assembly. This is just one example
- Get the endpoints:
IEnumerable<HttpEndpoint> endpoints = assembly.GetEndpoints();
Endpoint Info
GetEndpoints returns a collection of HttpEndpoint instances with info describing the endpoint.
HttpEndpoint includes:
Route Details
- Route - The route to the endpoint without the base URL
- ExampleRoute - A useable route that has the route params replaced from examples in the XML comments
- an XML example value must be present for the ExampleRoute to be constructed, otherwise it will be empty
- Verb - The HTTP verb the endpoint acts on
XML Comments & Example Values
- XmlSummary - the <summary> field from XML comments on an endpoint method
- XmlReturns - the XML <returns> field
- XmlRemarks - a collection of <remarks> fields
- XmlExceptions - a collection of <exception> details, including exception full type name and description
- EndpointParam.XMLDescription - description in a <param> field
- EndpointParam.XmlExample - an example value in a <param example="5"> field
Validation
- XmlRouteValidationErrors - a collection of errors in the XML comments that prevent building an example route
- AllXmlValidationErrors - a collection of all endpoint errors like missing XML comments
Request/Response Types
- BodyPayloadType - the type of payload expected in the body of a request
- ResponseTypes - The reponse types listed using the [ProducesResponseType] attributes on the endpoint
Method Info
- ReturnType - the return type in the method signature
- MethodName - The name of the endpoint method
- MethodParams - info on the params the endpoint method accepts. Includes param Type, XML comments, and useage type
Controller Details
- ControllerType - the type of the controller that contains the endpoint
- Assembly - the assembly that contains the controller & endpoint
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- BufTools.Extensions.XmlComments (>= 2.0.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.2.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Fixed handling of route params with type included. ie, get/{id:int}