# HTTP Operations

### Create

Fires a `POST` request to create a single resource:

```typescript
crudService.create<
	RequestBody = CreateRequestBody,
	ResponseBody = CreateResponseBody
>(body : NoInfer<RequestBody>, options ?: Options) : Observable<ResponseBody>
```

### Read

Fires a `GET` request to read a single resource:

```typescript
crudService.read<
	ResponseBody = ReadResponseBody
>(id : Id, options ?: Options) : Observable<ResponseBody>
```

### Find

Fires a `GET` request to find multiple resources:

```typescript
crudService.find<
	ResponseBody = FindResponseBody
>(options ?: Options) : Observable<ResponseBody>
```

### Update

Fires a `PUT` request to completely update a single resource:

```typescript
crudService.update<
	RequestBody = UpdateRequestBody,
	ResponseBody = UpdateResponseBody
>(id : Id, body : NoInfer<RequestBody>, options ?: Options) : Observable<ResponseBody>
```

### Patch

Fires a `PATCH` request to partially update a single resource:

```typescript
crudService.patch<
	RequestBody = PatchRequestBody,
	ResponseBody = PatchResponseBody
>(id : Id, body : NoInfer<RequestBody>, options ?: Options) : Observable<ResponseBody>
```

### Delete

Fires a `DELETE` request to delete a single resource:

```typescript
crudService.delete<
	ResponseBody = DeleteResponseBody
>(id : Id, options ?: Options) : Observable<ResponseBody>
```

### Custom

Fires a custom request:

```typescript
crudService.custom<
	RequestBody = CustomRequestBody,
	ResponseBody = CustomResponseBody
>(method : Method, options ?: OptionsWithBody<NoInfer<RequestBody>>) : Observable<ResponseBody>
```
