2:  <a href="https://www.npmjs.com/package/json-api-nestjs" target="_blank"><img src="https://img.shields.io/npm/v/json-api-nestjs.svg" alt="NPM Version" /></a>
3:  <a href="https://www.npmjs.com/package/json-api-nestjs" target="_blank"><img src="https://img.shields.io/npm/l/json-api-nestjs.svg" alt="Package License" /></a>
4:  <a href="https://www.npmjs.com/package/json-api-nestjs" target="_blank"><img src="https://img.shields.io/npm/dm/json-api-nestjs.svg" alt="NPM Downloads" /></a>
6:  <img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/klerick/02a4c98cf7008fea2af70dc2d50f4cb7/raw/json-api-nestjs.json" alt="Coverage Badge" />
9:# json-api-nestjs
11:This plugin works upon **TypeOrm** or **MicroOrm** library, which is used as the main database abstraction layer tool. The module
13:supports features such as requests validation based on database fields types, request filtering, endpoints extending,
14:data relations control and much more. Our module significantly reduces the development time of REST services by removing
21:$ npm install @yaser2us/json-api-nestjs
29:import {Module} from '@nestjs/common';
30:import {JsonApiModule} from '@yaser2us/json-api-nestjs';
31:import {TypeOrmJsonApiModule} from '@yaser2us/json-api-nestjs-typeorm';
47:import {Module} from '@nestjs/common';
48:import {JsonApiModule} from '@yaser2us/json-api-nestjs';
49:import {MicroOrmJsonApiModule} from '@yaser2us/json-api-nestjs-microorm';
70:- GET /users/{id}/relationships/{relName}
71:- POST /users/{id}/relationships/{relName}
72:- PATCH /users/{id}/relationships/{relName}
73:- DELETE /users/{id}/relationships/{relName}
85:  imports?: NestImport[]; // List of addition module for useing in custom controller
88:    debug?: boolean; // Debug info in result object, like error message
90:    operationUrl?: string // Url for atomic operation https://jsonapi.org/ext/atomic/
99:import {Get, Param, Inject, BadRequestException} from '@nestjs/common';
109:} from '@yaser2us/json-api-nestjs';
112:} from '@yaser2us/json-api-nestjs-shared';
146:You can overwrite the default config for the current controller using options in the decorator **JsonAPi**.
153:import { Query } from '@nestjs/common';
161:} from 'json-api-nestjs';
181:import { ArgumentMetadata, PipeTransform } from '@nestjs/common';
183:import { Query } from 'json-api-nestjs';
195:For using swagger, you should only add [@nestjs/swagger](https://docs.nestjs.com/openapi/introduction) and configure it
227:- **include** - you can extend result with relations (aka join)
229:   GET /users?include=roles
242:- **sort** - you can sort result of the request
245:   GET /users?sort=target.name,-roles.key
249:  So, result of the request will be sorted by field *name* of **Users** by *ASC* and field *key* of **Roles** entity
251:- **page** - pagination for you request
256:- **filter** - filter for query
259:  GET /users?filter[name][eq]=1&filter[roles.name][ne]=test&filter[roles.status][eq]=true
263:  The "eq", "ne" is *[Filter operand](#filter-operand)*
293:- **include** - you can extend result with relations (aka join)
295:   GET /users?include=roles
329:    "relationships": {
359:    "relationships": {
375:You can more information find [here](https://jsonapi.org/ext/atomic/)
382:but [Atomic operation](https://jsonapi.org/ext/atomic/) allow for one request.
411:            "relationships":{
