You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A framework for building [JSON:API](https://jsonapi.org/) compliant REST APIs using .NET Core and Entity Framework Core. Includes support for [Atomic Operations](https://jsonapi.org/ext/atomic/).
1
+
A framework for building [JSON:API](https://jsonapi.org/) compliant REST APIs using ASP.NET Core and Entity Framework Core. Includes support for the [Atomic Operations](https://jsonapi.org/ext/atomic/) extension.
2
2
3
-
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filteringand pagination. You just need to focus on defining the resources and implementing your custom business logic. This library has been designed around dependency injection, making extensibility incredibly easy.
3
+
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features, such as sorting, filtering, pagination, sparse fieldset selection, and side-loading related resources. You just need to focus on defining the resources and implementing your custom business logic. This library has been designed around dependency injection, making extensibility incredibly easy.
4
4
5
5
For more information, visit [www.jsonapi.net](https://www.jsonapi.net/).
A framework for building [JSON:API](https://jsonapi.org/) compliant REST APIs using .NET Core and Entity Framework Core. Includes support for the [Atomic Operations](https://jsonapi.org/ext/atomic/) extension.
5
-
6
-
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filtering, pagination, sparse fieldset selection, and side-loading related resources. You just need to focus on defining the resources and implementing your custom business logic. This library has been designed around dependency injection, making extensibility incredibly easy.
A framework for building [JSON:API](https://jsonapi.org/) compliant REST APIs using ASP.NET Core and Entity Framework Core. Includes support for the [Atomic Operations](https://jsonapi.org/ext/atomic/) extension.
15
13
16
-
First, declare your models:
14
+
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features, such as sorting, filtering, pagination, sparse fieldset selection, and side-loading related resources. You just need to focus on defining the resources and implementing your custom business logic. This library has been designed around dependency injection, making extensibility incredibly easy.
17
15
18
-
```c#
19
-
#nullable enable
16
+
> [!NOTE]
17
+
> OpenAPI support is now [available](https://www.jsonapi.net/usage/openapi.html), currently in preview. Give it a try!
20
18
21
-
[Resource]
22
-
publicclassArticle : Identifiable<Guid>
23
-
{
24
-
[Attr]
25
-
publicstringName { get; set; } =null!;
26
-
}
27
-
```
19
+
## Getting started
28
20
29
-
Then, add the middleware:
21
+
The following steps describe how to create a JSON:API project.
30
22
31
-
```c#
32
-
// Program.cs
23
+
1. Install the JsonApiDotNetCore package, along with your preferred Entity Framework Core provider:
GET http://localhost:5000/people?filter=equals(firstName,'John')&include=children HTTP/1.1
106
+
```
67
107
68
-
See [our documentation](https://www.jsonapi.net/) for detailed usage. The [examples](https://github.com/json-api-dotnet/JsonApiDotNetCore/tree/master/src/Examples) directory provides up-to-date sample applications. There is also a [Todo List App](https://github.com/json-api-dotnet/TodoListExample) that includes a JsonApiDotNetCore API and an EmberJs client with token authentication.
-[JSON:API, ASP.NET Core, EmberJS](https://youtu.be/KAMuo6K7VcE) (video, 2017)
81
180
-[Embercasts: Full Stack Ember with ASP.NET Core](https://www.embercasts.com/course/full-stack-ember-with-dotnet/watch/whats-in-this-course-cs) (paid course, 2017)
- The [examples](https://github.com/json-api-dotnet/JsonApiDotNetCore/tree/master/src/Examples) directory provides ready-to-run sample API projects
191
+
- Many advanced use cases are covered by integration tests, which can be found [here](https://github.com/json-api-dotnet/JsonApiDotNetCore/tree/master/test/JsonApiDotNetCoreTests/IntegrationTests).
192
+
This includes topics such as batching, multi-tenancy, authorization, soft-deletion, obfuscated IDs, resource inheritance, alternate routing, custom metadata, error handling and logging.
193
+
- The [Ember.js Todo List App](https://github.com/json-api-dotnet/TodoListExample) showcases a JsonApiDotNetCore API and an Ember.js client with token authentication.
-[Ember.js Todo List App](https://github.com/json-api-dotnet/TodoListExample)
@@ -113,10 +219,6 @@ See also our [versioning policy](./VERSIONING_POLICY.md).
113
219
| master | Preview | 8 | 8, 9 |
114
220
||| 9 | 9 |
115
221
116
-
## Contributing
117
-
118
-
Have a question, found a bug or want to submit code changes? See our [contributing guidelines](./.github/CONTRIBUTING.md).
119
-
120
222
## Trying out the latest build
121
223
122
224
After each commit to the master branch, a new pre-release NuGet package is automatically published to [GitHub Packages](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry).
@@ -138,15 +240,19 @@ To try it out, follow the steps below:
138
240
and retry with the `--store-password-in-clear-text` switch added.
139
241
1. Restart your IDE, open your project, and browse the list of packages from the github-json-api feed (make sure pre-release packages are included).
140
242
141
-
## Development
243
+
## Contributing
244
+
245
+
Have a question, found a bug or want to submit code changes? See our [contributing guidelines](./.github/CONTRIBUTING.md).
246
+
247
+
## Build from source
142
248
143
249
To build the code from this repository locally, run:
144
250
145
251
```bash
146
252
dotnet build
147
253
```
148
254
149
-
Running tests locally requires access to a PostgreSQL database. If you have docker installed, this can be propped up via:
255
+
Running tests locally requires access to a PostgreSQL database. If you have docker installed, this can started via:
150
256
151
257
```bash
152
258
pwsh run-docker-postgres.ps1
@@ -166,5 +272,9 @@ pwsh Build.ps1
166
272
167
273
## Sponsors
168
274
275
+
We are very grateful to the sponsors below, who have provided us with a no-cost license for their tools.
<metacontent="A framework for building JSON:API compliant REST APIs using .NET Core and Entity Framework Core. Includes support for Atomic Operations." name="description">
7
+
<metacontent="A framework for building JSON:API compliant REST APIs using ASP.NET Core and Entity Framework Core. Includes support for the Atomic Operations extension." name="description">
<p>We strive to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filtering and pagination.</p>
85
+
<p>
86
+
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features, such as sorting, filtering, pagination, sparse fieldset selection, and side-loading related resources.
0 commit comments