Skip to content

Allows configure Asp.Net Core and OpenApi to use NodaTime types.

License

Notifications You must be signed in to change notification settings

MMonrad/OpenApi.Extensions

Repository files navigation

Open Api Extensions

Latest Release Latest Pre-Release Downloads License

Table of Contents

Elevator Pitch

Simplify your OpenAPI integration with our .NET 9 NuGet packages! OpenApi.Extensions delivers essential, reusable extensions to streamline and enhance your OpenAPI documentation. OpenApi.NodaTime builds on this foundation, adding seamless support for NodaTime, ensuring accurate and user-friendly representations of time-related data in your APIs. Perfect for developers seeking both flexibility and precision in their API solutions.

Example

var collection = new ServiceCollection();
using var services = collection.BuildServiceProvider();
services.AddOpenApi(opt =>
                    {
                        opt.OpenApiVersion = OpenApiSpecVersion.OpenApi3_0;
                        opt.ConfigureNodaTime();
                        opt.AddType<CommandRequestId, string>(new CommandRequestId(Guid.Empty));
                    });

Extensions

NodaTime

Allows to configure Asp.Net Core and OpenApi to use NodaTime types.

Latest Release Latest Pre-Release Downloads License

Installation

dotnet add package MMonrad.OpenApi.NodaTime

Type mappings

NodaTime Type OpenAPI Type OpenAPI Format Description Example
Instant string date-time Represents an instant in time (UTC) without time zone information. 2023-12-21T15:30:00Z
LocalDateTime string date-time A date and time without a time zone. 2023-12-21T15:30:00
LocalDate string date A date without a time component or time zone. 2023-12-21
LocalTime string time A time without a date or time zone. 15:30:00
OffsetDateTime string date-time A date and time with an offset from UTC, but without a specific time zone. 2023-12-21T15:30:00+01:00
OffsetTime string time A time with an offset from UTC, but without a specific date. 15:30:00+01:00
ZonedDateTime string date-time A date and time with a time zone. Often used for scheduling and calendaring. 2023-12-21T15:30:00+01:00[Europe/London]
Period string duration An ISO 8601 duration representing an elapsed time. P1Y2M10DT2H30M
Duration string duration An elapsed time measured in nanoseconds, mapped to ISO 8601 duration. PT2H30M
Interval object - Represents a time interval between two Instant values, expressed with start and end. { "start": "2023-12-21T10:00:00Z", "end": "2023-12-21T15:30:00Z" }
DateInterval object - A date interval between two LocalDate values, expressed with start and end. { "start": "2023-12-20", "end": "2023-12-25" }

About

Allows configure Asp.Net Core and OpenApi to use NodaTime types.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published