# Introduction

> CRUD services in Angular with effortless aborting, caching and observing.

### Installation

```bash
npm install ngx-crud
```

### Setup

Import the `CrudModule` and `HttpClientModule` inside your `AppModule`:

```typescript
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { CrudModule } from 'ngx-crud';

@NgModule(
{
	imports:
	[
		CrudModule
	],
	providers:
	[
		provideHttpClient(withInterceptorsFromDi())
	]
})
export class AppModule
{
}
```

### Usage

Extend the `ExampleService` from the `CrudService`:

```typescript
import { Injectable } from '@angular/core';
import { CrudService } from 'ngx-crud';
import { RequestBody, ResponseBody } from './example.interface';

import { environment } from '@environments';

@Injectable()
@ApiUrl(environment.apiUrl)
@ApiRoute(environment.apiRoutes.example)
export class ExampleService extends CrudService<RequestBody, ResponseBody>
{
}
```

Use the HTTP operations as needed:

```typescript
exampleService.create(body, options);
exampleService.read(id, options);
exampleService.find(options);
exampleService.update(id, body, options);
exampleService.patch(id, body, options);
exampleService.delete(id, options);
exampleService.custom(method, options);
```

### Playground

Visit the [playground](https://playground.ngx-crud.com/) to see aborting, caching and observing in action.
