9
9
< link href ="favicon.ico " rel ="icon ">
10
10
< link href ="favicon.ico " rel ="apple-touch-icon ">
11
11
< link href ="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Raleway:300,300i,400,400i,600,600i,700,700i " rel ="stylesheet ">
12
- < link href ="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.css " rel ="stylesheet ">
12
+ < link href ="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min. css " rel ="stylesheet ">
13
13
< link href ="
https://unpkg.com/[email protected] /css/boxicons.min.css "
rel ="
stylesheet "
>
14
14
< link href ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.4.0/styles/default.min.css " rel ="stylesheet ">
15
15
< link href ="https://cdnjs.cloudflare.com/ajax/libs/aos/2.3.4/aos.css " rel ="stylesheet ">
22
22
< div class ="row ">
23
23
< div class ="col-lg-7 pt-5 pt-lg-0 order-2 order-lg-1 ">
24
24
< h1 > JsonApiDotNetCore</ h1 >
25
- < h2 > A framework for building < a href ="https://jsonapi.org/ " target ="_blank "> JSON:API</ a > compliant REST APIs using .NET Core and Entity Framework Core. Includes support for < a href ="https://jsonapi.org/ext/atomic/ " target ="_blank "> Atomic Operations</ a > .</ h2 >
25
+ < h2 >
26
+ A framework for building < a href ="https://jsonapi.org/ " target ="_blank "> JSON:API</ a > compliant REST APIs using .NET Core and Entity Framework Core.
27
+ Includes support for < a href ="https://jsonapi.org/ext/atomic/ " target ="_blank "> Atomic Operations</ a > .
28
+ </ h2 >
26
29
< a href ="#about " class ="btn-get-started scrollto "> Read more</ a >
27
30
< a href ="../../getting-started/install.html " class ="btn-get-started "> Getting started</ a >
28
31
< a href ="https://github.com/json-api-dotnet/JsonApiDotNetCore/ " target ="_blank " class ="btn-get-started "> Contribute on GitHub</ a >
@@ -43,12 +46,13 @@ <h2>A framework for building <a href="https://jsonapi.org/" target="_blank">JSON
43
46
< div class ="col-lg-6 pt-5 pt-lg-0 ">
44
47
< h3 data-aos ="fade-up "> Objectives</ h3 >
45
48
< p data-aos ="fade-up " data-aos-delay ="100 ">
46
- The goal of this library is to simplify the development of APIs that leverage the full range of features provided by the < a href ="https://jsonapi.org/ " target ="_blank "> JSON:API</ a > specification.
49
+ The goal of this library is to simplify the development of APIs that leverage the full range of features
50
+ provided by the < a href ="https://jsonapi.org/ " target ="_blank "> JSON:API</ a > specification.
47
51
You just need to focus on defining the resources and implementing your custom business logic.
48
52
</ p >
49
53
< div class ="row ">
50
54
< div class ="col-md-6 " data-aos ="fade-up " data-aos-delay ="100 ">
51
- < i class =' bx bxs-package ' > </ i >
55
+ < i class =" bx bxs-package " > </ i >
52
56
< h4 > Eliminate boilerplate</ h4 >
53
57
< p > We strive to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filtering and pagination.</ p >
54
58
</ div >
@@ -69,28 +73,28 @@ <h2>Features</h2>
69
73
< p > The following features are supported, from HTTP all the way down to the database</ p >
70
74
</ div >
71
75
< div class ="row ">
72
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="100 " id =' filter ' >
76
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="100 " id =" filter " >
73
77
< div class ="icon-box ">
74
78
< div class ="icon "> < i class ="bx bxs-filter-alt "> </ i > </ div >
75
79
< h4 class ="title "> Filtering</ h4 >
76
80
< p class ="description "> Perform compound filtering using the < code > filter</ code > query string parameter</ p >
77
81
</ div >
78
82
</ div >
79
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="200 " id =' sort ' >
83
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="200 " id =" sort " >
80
84
< div class ="icon-box ">
81
- < div class ="icon "> < i class ="bx bx-sort-z-a "> </ i > </ div >
85
+ < div class ="icon "> < i class ="bx bx-sort-a-z "> </ i > </ div >
82
86
< h4 class ="title "> Sorting</ h4 >
83
87
< p class ="description "> Order resources on one or multiple attributes using the < code > sort</ code > query string parameter</ p >
84
88
</ div >
85
89
</ div >
86
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="300 " id =' pagination ' >
90
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="300 " id =" pagination " >
87
91
< div class ="icon-box ">
88
92
< div class ="icon "> < i class ="bx bx-note "> </ i > </ div >
89
93
< h4 class ="title "> Pagination</ h4 >
90
94
< p class ="description "> Leverage the benefits of paginated resources with the < code > page</ code > query string parameter</ p >
91
95
</ div >
92
96
</ div >
93
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="400 " id =' selection ' >
97
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="400 " id =" selection " >
94
98
< div class ="icon-box ">
95
99
< div class ="icon "> < i class ="bx bxs-select-multiple "> </ i > </ div >
96
100
< h4 class ="title "> Sparse fieldset selection</ h4 >
@@ -99,30 +103,30 @@ <h4 class="title">Sparse fieldset selection</h4>
99
103
</ div >
100
104
</ div >
101
105
< div class ="row ">
102
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="100 " id =' include ' >
106
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="500 " id =" include " >
103
107
< div class ="icon-box ">
104
108
< div class ="icon "> < i class ="bx bxs-vector "> </ i > </ div >
105
109
< h4 class ="title "> Relationship inclusion</ h4 >
106
110
< p class ="description "> Side-load related resources of nested relationships using the < code > include</ code > query string parameter</ p >
107
111
</ div >
108
112
</ div >
109
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="100 " id =' security ' >
113
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="600 " id =" security " >
110
114
< div class ="icon-box ">
111
- < div class ="icon "> < i class =' bx bxs-lock ' > </ i > </ div >
115
+ < div class ="icon "> < i class =" bx bxs-lock " > </ i > </ div >
112
116
< h4 class ="title "> Security</ h4 >
113
- < p class ="description "> Configure permissions, such as view/create/change/sort/filter of attributes and relationships</ p >
117
+ < p class ="description "> Configure permissions, such as viewing, creating, modifying, sorting and filtering of attributes and relationships</ p >
114
118
</ div >
115
119
</ div >
116
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="100 " id =' validation ' >
120
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="700 " id =" validation " >
117
121
< div class ="icon-box ">
118
- < div class ="icon "> < i class =' bx bx-check-double ' > </ i > </ div >
122
+ < div class ="icon "> < i class =" bx bx-check-double " > </ i > </ div >
119
123
< h4 class ="title "> Validation</ h4 >
120
- < p class ="description "> Validate incoming requests using built-in ASP.NET Core < code > ModelState </ code > validation , which works seamlessly with partial updates</ p >
124
+ < p class ="description "> Validate incoming requests using built-in ASP.NET Model Validation , which works seamlessly with partial updates</ p >
121
125
</ div >
122
126
</ div >
123
- < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="200 " id =' customizable ' >
127
+ < div feature class ="col-md-6 col-lg-3 d-flex align-items-stretch " data-aos ="zoom-in " data-aos-delay ="800 " id =" customizable " >
124
128
< div class ="icon-box ">
125
- < div class ="icon "> < i class =' bx bxs-category-alt ' > </ i > </ div >
129
+ < div class ="icon "> < i class =" bx bxs-category-alt " > </ i > </ div >
126
130
< h4 class ="title "> Customizable</ h4 >
127
131
< p class ="description "> Use various extensibility points to intercept and run custom code, besides just model annotations</ p >
128
132
</ div >
@@ -139,7 +143,7 @@ <h2>Example usage</h2>
139
143
< div class ="row ">
140
144
< div code-example class ="col-md-12 col-lg-12 d-flex d-flex justify-content-center " data-aos ="zoom-in " data-aos-delay ="100 ">
141
145
< div class ="icon-box code-example ">
142
- < div class ="icon "> < i class =' bx bx-detail ' > </ i > </ div >
146
+ < div class ="icon "> < i class =" bx bx-detail " > </ i > </ div >
143
147
< h4 class ="title "> Resource</ h4 >
144
148
< pre >
145
149
< code > #nullable enable
@@ -179,16 +183,16 @@ <h4 class="title">Resource</h4>
179
183
< div class ="row ">
180
184
< div code-example class ="col-md-12 col-lg-12 d-flex d-flex justify-content-center " data-aos ="zoom-in " data-aos-delay ="100 ">
181
185
< div class ="icon-box code-example ">
182
- < div class ="icon "> < i class =' bx bx-message-rounded-detail ' > </ i > </ div >
186
+ < div class ="icon "> < i class =" bx bx-message-rounded-detail " > </ i > </ div >
183
187
< h4 class ="title "> Request</ h4 >
184
188
< pre > < code > GET /articles?filter=contains(summary,'web')&sort=-lastModifiedAt&fields[articles]=title,summary&include=author HTTP/1.1</ code > </ pre >
185
189
</ div >
186
190
</ div >
187
191
</ div >
188
192
< div class ="row ">
189
- < div code-example class ="col-md-12 col-lg-12 d-flex d-flex justify-content-center " data-aos ="zoom-in " data-aos-delay ="100 ">
193
+ < div code-example class ="col-md-12 col-lg-12 d-flex d-flex justify-content-center " data-aos ="zoom-in " data-aos-delay ="200 ">
190
194
< div class ="icon-box code-example ">
191
- < div class ="icon "> < i class =' bx bx-message-rounded-detail bx-flip-horizontal ' > </ i > </ div >
195
+ < div class ="icon "> < i class =" bx bx-message-rounded-detail bx-flip-horizontal " > </ i > </ div >
192
196
< h4 class ="title "> Response</ h4 >
193
197
< pre >
194
198
< code > {
@@ -259,15 +263,15 @@ <h4 class="title">Response</h4>
259
263
< h2 > Sponsors</ h2 >
260
264
</ div >
261
265
< div class ="row justify-content-center ">
262
- < div sponsor class ="col-md-4 col-lg-3 d-flex align-items-stretch justify-content-center aos-init aos-animate " data-aos =" zoom-in " data-aos-delay =" 100 " id ="jetbrains ">
263
- < div class ="icon-box d-flex align-items-center ">
266
+ < div sponsor class ="col-md-4 col-lg-3 d-flex align-items-stretch justify-content-center aos-init aos-animate " id ="jetbrains ">
267
+ < div class ="icon-box d-flex align-items-center " data-aos =" zoom-in " data-aos-delay =" 100 " >
264
268
< div class ="icon ">
265
269
< img src ="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg " alt ="JetBrains Logo " style ="width:150px ">
266
270
</ div >
267
271
</ div >
268
272
</ div >
269
- < div sponsor class ="col-md-4 col-lg-3 d-flex align-items-stretch justify-content-center aos-init aos-animate " data-aos =" zoom-in " data-aos-delay =" 100 " id ="araxis ">
270
- < div class ="icon-box d-flex align-items-center " style ="background-color: rgb(116, 125, 139) ">
273
+ < div sponsor class ="col-md-4 col-lg-3 d-flex align-items-stretch justify-content-center aos-init aos-animate " id ="araxis ">
274
+ < div class ="icon-box d-flex align-items-center " style ="background-color: rgb(116, 125, 139) " data-aos =" zoom-in " data-aos-delay =" 200 " >
271
275
< div class ="icon ">
272
276
< img src ="https://www.araxis.com/theme/37/img/araxis-logo-lg.svg " alt ="Araxis Logo " style ="width:150px ">
273
277
</ div >
0 commit comments