Skip to content

Various documentation enhancements #1728

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
May 6, 2025
19 changes: 15 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,23 @@ The ultimate goal of this library is to eliminate as much boilerplate as possibl

The following steps describe how to create a JSON:API project.

1. Create a new ASP.NET Core Web API project:

```bash
dotnet new webapi --no-openapi --use-controllers --name ExampleJsonApi
cd ExampleJsonApi
```

1. Install the JsonApiDotNetCore package, along with your preferred Entity Framework Core provider:

```bash
dotnet add package JsonApiDotNetCore
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
```

1. Declare your entities, annotated with JsonApiDotNetCore attributes:
```c#
#nullable enable

```c#
[Resource]
public class Person : Identifiable<long>
{
Expand All @@ -40,6 +47,7 @@ The following steps describe how to create a JSON:API project.
```

1. Define your `DbContext`, seeding the database with sample data:

```c#
public class AppDbContext(DbContextOptions<AppDbContext> options) : DbContext(options)
{
Expand Down Expand Up @@ -70,6 +78,7 @@ The following steps describe how to create a JSON:API project.
```

1. Configure Entity Framework Core and JsonApiDotNetCore in `Program.cs`:

```c#
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<AppDbContext>();
Expand All @@ -96,11 +105,13 @@ The following steps describe how to create a JSON:API project.
```

1. Start your API

```bash
dotnet run
```

1. Send a GET request to retrieve data:

```bash
GET http://localhost:5000/people?filter=equals(firstName,'John')&include=children HTTP/1.1
```
Expand Down Expand Up @@ -256,7 +267,7 @@ To build the code from this repository locally, run:
dotnet build
```

Running tests locally requires access to a PostgreSQL database. If you have docker installed, this can started via:
Running tests locally requires access to a PostgreSQL database. If you have docker installed, this can be started via:

```bash
pwsh run-docker-postgres.ps1
Expand All @@ -279,6 +290,6 @@ pwsh Build.ps1
We are very grateful to the sponsors below, who have provided us with a no-cost license for their tools.

<a href="https://jb.gg/OpenSourceSupport"><img align="middle" src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg" alt="JetBrains Logo" style="width:150px"></a> &nbsp;
<a href="https://www.araxis.com/buy/open-source"><img align="middle" src="https://www.araxis.com/theme/37/img/araxis-logo-lg.svg" alt="Araxis Logo" style="width:150px"></a>
<a href="https://www.araxis.com/buy/open-source"><img align="middle" src="https://jsonapi.net/styles/img/araxis-logo.png" alt="Araxis Logo" style="width:150px"></a>

Do you like this project? Consider to [sponsor](https://github.com/sponsors/json-api-dotnet), or just reward us by giving our repository a star.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.Annotations.ResourceAttribute.html#JsonApiDotNetCore_Resources_Annotations_ResourceAttribute_GenerateControllerEndpoints
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Controllers.JsonApiCommandController-2.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Controllers.ModelStateViolation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Errors.InvalidModelStateException.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Diagnostics.CascadingCodeTimer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Diagnostics.ICodeTimer.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Errors.ResourceAlreadyExistsException.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Errors.InvalidRequestBodyException.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.IResourceDefinition-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.IResourceDefinition-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.JsonApiResourceDefinition-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.IResourceDefinition-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.IResourceDefinition-2.html#JsonApiDotNetCore_Resources_IResourceDefinition_2_OnWritingAsync__0_JsonApiDotNetCore_Middleware_WriteOperationKind_System_Threading_CancellationToken_
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.IResourceDefinition-2.html#JsonApiDotNetCore_Resources_IResourceDefinition_2_OnWritingAsync__0_JsonApiDotNetCore_Middleware_WriteOperationKind_System_Threading_CancellationToken_
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Middleware.JsonApiExtension.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Middleware.JsonApiMediaTypeExtension.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.Expressions.HasExpression.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.IEvaluatedIncludeCache.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.Parsing.IncludeParser.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.Parsing.Keywords.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.Parsing.QueryExpressionParser.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.Parsing.QueryStringParameterScopeParser.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.Parsing.QueryTokenizer.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.QueryableBuilding.LambdaScope.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.QueryableBuilding.SelectClauseBuilder.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Queries.QueryableBuilding.WhereClauseBuilder.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.QueryStrings.IQueryStringParameterReader.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.QueryStrings.QueryStringParameterReader.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.QueryStrings.FilterQueryStringParameterReader.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.QueryStrings.IncludeQueryStringParameterReader.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.QueryStrings.PaginationQueryStringParameterReader.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.QueryStrings.ResourceDefinitionQueryableParameterReader.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.QueryStrings.Internal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.QueryStrings.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Resources.Internal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Resources.JsonApiResourceDefinition-2.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Serialization.BaseDeserializer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Serialization.Request.Adapters.DocumentAdapter.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Serialization.BaseSerializer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Serialization.Response.ResponseModelAdapter.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Serialization.Response.ResponseModelAdapter.html#JsonApiDotNetCore_Serialization_Response_ResponseModelAdapter_ConvertResource_JsonApiDotNetCore_Resources_IIdentifiable_JsonApiDotNetCore_Configuration_ResourceType_JsonApiDotNetCore_Middleware_EndpointKind_
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Serialization.Response.ResponseModelAdapter.html#JsonApiDotNetCore_Serialization_Response_ResponseModelAdapter_ConvertResource_JsonApiDotNetCore_Resources_IIdentifiable_JsonApiDotNetCore_Configuration_ResourceType_JsonApiDotNetCore_Middleware_EndpointKind_
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Configuration.JsonApiOptions.html#JsonApiDotNetCore_Configuration_JsonApiOptions_SerializerOptions
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: ../usage/openapi-client.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: ../usage/openapi-client.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Serialization.Client.Internal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: ../usage/openapi-client.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Serialization.Request.Adapters.IDocumentAdapter.html
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Serialization.IJsonApiWriter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Serialization.Response.IJsonApiWriter.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Serialization.Objects.ResourceIdentity.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Configuration.JsonApiOptions.html#JsonApiDotNetCore_Configuration_JsonApiOptions_SerializerOptions
---
3 changes: 3 additions & 0 deletions docs/api/JsonApiDotNetCore.Services.IGetAllService-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Services.IGetAllService-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Services.IRemoveFromRelationshipService-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Services.IResourceCommandService-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Services.IResourceQueryService-2.html
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redirect_url: JsonApiDotNetCore.Services.JsonApiResourceService-2.html
---
96 changes: 90 additions & 6 deletions docs/api/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,93 @@
# API
# Public API surface

This section documents the package API and is generated from the XML source comments.
This topic documents the public API, which is generated from the triple-slash XML documentation comments in source code.
Commonly used types are listed in the following sections.

## Common APIs
## Setup

- [`JsonApiOptions`](JsonApiDotNetCore.Configuration.JsonApiOptions.yml)
- [`IResourceGraph`](JsonApiDotNetCore.Configuration.IResourceGraph.yml)
- [`JsonApiResourceDefinition<TResource, TId>`](JsonApiDotNetCore.Resources.JsonApiResourceDefinition-2.yml)
- <xref:JsonApiDotNetCore.Configuration.JsonApiOptions> implements <xref:JsonApiDotNetCore.Configuration.IJsonApiOptions>
- <xref:JsonApiDotNetCore.Configuration.ResourceGraph> implements <xref:JsonApiDotNetCore.Configuration.IResourceGraph>
- <xref:JsonApiDotNetCore.Configuration.ResourceType>
- <xref:JsonApiDotNetCore.Resources.Identifiable`1> implements <xref:JsonApiDotNetCore.Resources.IIdentifiable`1>
- <xref:JsonApiDotNetCore.Resources.Annotations.ResourceAttribute> and <xref:JsonApiDotNetCore.Resources.Annotations.NoResourceAttribute>
- <xref:JsonApiDotNetCore.Resources.Annotations.ResourceLinksAttribute>
- <xref:JsonApiDotNetCore.Resources.Annotations.AttrAttribute>
- <xref:JsonApiDotNetCore.Resources.Annotations.HasOneAttribute>
- <xref:JsonApiDotNetCore.Resources.Annotations.HasManyAttribute>
- <xref:JsonApiDotNetCore.Resources.Annotations.EagerLoadAttribute>
- <xref:JsonApiDotNetCore.Configuration.ServiceCollectionExtensions>, <xref:JsonApiDotNetCore.OpenApi.Swashbuckle.ServiceCollectionExtensions> (OpenAPI)
- <xref:JsonApiDotNetCore.Configuration.ApplicationBuilderExtensions>
- <xref:JsonApiDotNetCore.Middleware.JsonApiRoutingConvention> implements <xref:JsonApiDotNetCore.Middleware.IJsonApiRoutingConvention>
- <xref:JsonApiDotNetCore.Controllers.Annotations.DisableRoutingConventionAttribute>
- <xref:JsonApiDotNetCore.Controllers.Annotations.DisableQueryStringAttribute>

## Query strings

- <xref:JsonApiDotNetCore.Middleware.AsyncQueryStringActionFilter> implements <xref:JsonApiDotNetCore.Middleware.IAsyncQueryStringActionFilter>
- <xref:JsonApiDotNetCore.QueryStrings.QueryStringReader> implements <xref:JsonApiDotNetCore.QueryStrings.IQueryStringReader>
- <xref:JsonApiDotNetCore.QueryStrings.IQueryStringParameterReader> and <xref:JsonApiDotNetCore.Queries.IQueryConstraintProvider>
- <xref:JsonApiDotNetCore.QueryStrings.IncludeQueryStringParameterReader> implements <xref:JsonApiDotNetCore.QueryStrings.IIncludeQueryStringParameterReader>
- <xref:JsonApiDotNetCore.Queries.Parsing.IncludeParser> implements <xref:JsonApiDotNetCore.Queries.Parsing.IIncludeParser>
- <xref:JsonApiDotNetCore.QueryStrings.FilterQueryStringParameterReader> implements <xref:JsonApiDotNetCore.QueryStrings.IFilterQueryStringParameterReader>
- <xref:JsonApiDotNetCore.Queries.Parsing.FilterParser> implements <xref:JsonApiDotNetCore.Queries.Parsing.IFilterParser>
- <xref:JsonApiDotNetCore.QueryStrings.SortQueryStringParameterReader> implements <xref:JsonApiDotNetCore.QueryStrings.ISortQueryStringParameterReader>
- <xref:JsonApiDotNetCore.Queries.Parsing.SortParser> implements <xref:JsonApiDotNetCore.Queries.Parsing.ISortParser>
- <xref:JsonApiDotNetCore.QueryStrings.PaginationQueryStringParameterReader> implements <xref:JsonApiDotNetCore.QueryStrings.IPaginationQueryStringParameterReader>
- <xref:JsonApiDotNetCore.Queries.Parsing.PaginationParser> implements <xref:JsonApiDotNetCore.Queries.Parsing.IPaginationParser>
- <xref:JsonApiDotNetCore.QueryStrings.SparseFieldSetQueryStringParameterReader> implements <xref:JsonApiDotNetCore.QueryStrings.ISparseFieldSetQueryStringParameterReader>
- <xref:JsonApiDotNetCore.Queries.Parsing.SparseFieldSetParser> implements <xref:JsonApiDotNetCore.Queries.Parsing.ISparseFieldSetParser>
- <xref:JsonApiDotNetCore.Queries.QueryLayer>
- <xref:JsonApiDotNetCore.Queries.FieldSelection>
- <xref:JsonApiDotNetCore.Queries.Expressions.QueryExpression>
- <xref:JsonApiDotNetCore.Queries.Expressions.IncludeExpression>
- <xref:JsonApiDotNetCore.Queries.Expressions.FilterExpression>
- <xref:JsonApiDotNetCore.Queries.Expressions.SortExpression>
- <xref:JsonApiDotNetCore.Queries.Expressions.PaginationExpression>
- <xref:JsonApiDotNetCore.Queries.Expressions.SparseFieldSetExpression>
- <xref:JsonApiDotNetCore.Queries.QueryableBuilding.QueryableBuilder> implements <xref:JsonApiDotNetCore.Queries.QueryableBuilding.IQueryableBuilder>
- <xref:JsonApiDotNetCore.Queries.QueryableBuilding.IncludeClauseBuilder> implements <xref:JsonApiDotNetCore.Queries.QueryableBuilding.IIncludeClauseBuilder>
- <xref:JsonApiDotNetCore.Queries.QueryableBuilding.WhereClauseBuilder> implements <xref:JsonApiDotNetCore.Queries.QueryableBuilding.IWhereClauseBuilder>
- <xref:JsonApiDotNetCore.Queries.QueryableBuilding.OrderClauseBuilder> implements <xref:JsonApiDotNetCore.Queries.QueryableBuilding.IOrderClauseBuilder>
- <xref:JsonApiDotNetCore.Queries.QueryableBuilding.SkipTakeClauseBuilder> implements <xref:JsonApiDotNetCore.Queries.QueryableBuilding.ISkipTakeClauseBuilder>
- <xref:JsonApiDotNetCore.Queries.QueryableBuilding.SelectClauseBuilder> implements <xref:JsonApiDotNetCore.Queries.QueryableBuilding.ISelectClauseBuilder>

## Request pipeline

- <xref:JsonApiDotNetCore.Controllers.JsonApiController`2> implements <xref:JsonApiDotNetCore.Controllers.BaseJsonApiController`2>
- <xref:JsonApiDotNetCore.Controllers.JsonApiQueryController`2>
- <xref:JsonApiDotNetCore.Controllers.JsonApiCommandController`2>
- <xref:JsonApiDotNetCore.Controllers.JsonApiOperationsController> implements <xref:JsonApiDotNetCore.Controllers.BaseJsonApiOperationsController>
- <xref:JsonApiDotNetCore.AtomicOperations.OperationsProcessor> implements <xref:JsonApiDotNetCore.AtomicOperations.IOperationsProcessor>
- <xref:JsonApiDotNetCore.AtomicOperations.Processors.IOperationProcessor>
- <xref:JsonApiDotNetCore.AtomicOperations.Processors.CreateProcessor`2> implements <xref:JsonApiDotNetCore.AtomicOperations.Processors.ICreateProcessor`2>
- <xref:JsonApiDotNetCore.AtomicOperations.Processors.UpdateProcessor`2> implements <xref:JsonApiDotNetCore.AtomicOperations.Processors.IUpdateProcessor`2>
- <xref:JsonApiDotNetCore.AtomicOperations.Processors.DeleteProcessor`2> implements <xref:JsonApiDotNetCore.AtomicOperations.Processors.IDeleteProcessor`2>
- <xref:JsonApiDotNetCore.AtomicOperations.Processors.SetRelationshipProcessor`2> implements <xref:JsonApiDotNetCore.AtomicOperations.Processors.ISetRelationshipProcessor`2>
- <xref:JsonApiDotNetCore.AtomicOperations.Processors.AddToRelationshipProcessor`2> implements <xref:JsonApiDotNetCore.AtomicOperations.Processors.IAddToRelationshipProcessor`2>
- <xref:JsonApiDotNetCore.AtomicOperations.Processors.RemoveFromRelationshipProcessor`2> implements <xref:JsonApiDotNetCore.AtomicOperations.Processors.IRemoveFromRelationshipProcessor`2>
- <xref:JsonApiDotNetCore.Middleware.JsonApiMiddleware>
- <xref:JsonApiDotNetCore.Middleware.JsonApiRequest> implements <xref:JsonApiDotNetCore.Middleware.IJsonApiRequest>
- <xref:JsonApiDotNetCore.Services.JsonApiResourceService`2> implements <xref:JsonApiDotNetCore.Services.IResourceService`2>
- <xref:JsonApiDotNetCore.Queries.QueryLayerComposer> implements <xref:JsonApiDotNetCore.Queries.IQueryLayerComposer>
- <xref:JsonApiDotNetCore.Resources.JsonApiResourceDefinition`2> implements <xref:JsonApiDotNetCore.Resources.IResourceDefinition`2>
- <xref:JsonApiDotNetCore.Repositories.EntityFrameworkCoreRepository`2> implements <xref:JsonApiDotNetCore.Repositories.IResourceRepository`2>
- <xref:JsonApiDotNetCore.Repositories.IResourceReadRepository`2>
- <xref:JsonApiDotNetCore.Repositories.IResourceWriteRepository`2>

## Serialization

- <xref:JsonApiDotNetCore.Middleware.JsonApiInputFormatter> implements <xref:JsonApiDotNetCore.Middleware.IJsonApiInputFormatter>
- <xref:JsonApiDotNetCore.Serialization.Request.JsonApiReader> implements <xref:JsonApiDotNetCore.Serialization.Request.IJsonApiReader>
- <xref:JsonApiDotNetCore.Serialization.Request.Adapters.DocumentAdapter> implements <xref:JsonApiDotNetCore.Serialization.Request.Adapters.IDocumentAdapter>
- <xref:JsonApiDotNetCore.Resources.TargetedFields> implements <xref:JsonApiDotNetCore.Resources.ITargetedFields>
- <xref:JsonApiDotNetCore.Middleware.JsonApiOutputFormatter> implements <xref:JsonApiDotNetCore.Middleware.IJsonApiOutputFormatter>
- <xref:JsonApiDotNetCore.Serialization.Response.JsonApiWriter> implements <xref:JsonApiDotNetCore.Serialization.Response.IJsonApiWriter>
- <xref:JsonApiDotNetCore.Serialization.Response.ResponseModelAdapter> implements <xref:JsonApiDotNetCore.Serialization.Response.IResponseModelAdapter>
- <xref:JsonApiDotNetCore.Serialization.Objects.Document>
- <xref:JsonApiDotNetCore.Queries.IEvaluatedIncludeCache>
- <xref:JsonApiDotNetCore.Queries.SparseFieldSetCache> implements <xref:JsonApiDotNetCore.Queries.ISparseFieldSetCache>

## Error handling

- <xref:JsonApiDotNetCore.Middleware.AsyncJsonApiExceptionFilter> implements <xref:JsonApiDotNetCore.Middleware.IAsyncJsonApiExceptionFilter>
- <xref:JsonApiDotNetCore.Middleware.ExceptionHandler> implements <xref:JsonApiDotNetCore.Middleware.IExceptionHandler>
6 changes: 4 additions & 2 deletions docs/build-dev.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ EnsureHttpServerIsInstalled
VerifySuccessExitCode

if (-Not $NoBuild -Or -Not (Test-Path -Path _site)) {
Remove-Item _site -Recurse -ErrorAction Ignore
Remove-Item _site\* -Recurse -ErrorAction Ignore

dotnet build .. --configuration Release
VerifySuccessExitCode

Invoke-Expression ./generate-examples.ps1
} else {
Remove-Item _site\* -Recurse -ErrorAction Ignore
}

dotnet tool restore
Expand All @@ -58,4 +60,4 @@ Write-Host "Web server started. Press Enter to close."
$key = [Console]::ReadKey()

Stop-Job -Id $webServerJob.Id
Get-job | Remove-Job
Get-job | Remove-Job -Force
Loading
Loading