---
url: https://record-api-docs.vercel.app/guide/services.md
---

# Services & Middleware

## Services

### RecordApiResponseService

Provides standardized JSON responses:

```php
use Mylekha\RecordApi\Services\RecordApiResponseService;
use Mylekha\RecordApi\Enums\RecordApiJsonResponseEnum;

$response = app('api.response');
return $response->success($data, 'Operation successful');
return $response->error('Error message', RecordApiJsonResponseEnum::ERROR->value);
```

### AuditLogService

Comprehensive audit logging for data changes:

```php
use Mylekha\RecordApi\Services\AuditLogService;
use Mylekha\RecordApi\Enums\AuditLogEventEnum;

AuditLogService::handleAuditDataEntry(
    event: AuditLogEventEnum::CREATED,
    entityName: 'users',
    entityType: 'users',
    queryData: ['id' => 1, 'name' => 'John Doe'],
    subject: 'John Doe',
    recap: null,
    tenantId: null,
);
```

### AuditLogJob

Queue-based audit logging for improved performance:

```php
use Mylekha\RecordApi\Jobs\AuditLogJob;
use Mylekha\RecordApi\Enums\AuditLogEventEnum;

// Dispatch audit log job to queue
AuditLogJob::dispatch(
    event: AuditLogEventEnum::CREATED,
    entityName: 'users',
    entityType: 'users',
    queryData: ['id' => 1, 'name' => 'John Doe'],
    tenantId: null,
);
```

### QueryCacheService

Intelligent query caching:

```php
use Mylekha\RecordApi\Services\QueryCacheService;

$result = QueryCacheService::remember(
    key: 'users:first',
    callback: fn () => \Illuminate\Support\Facades\DB::table('users')->first(),
    ttl: 3600,
);
```

## Middleware

The package registers the `request.id` middleware:

```php
Route::middleware('request.id')->group(function () {
    // Your routes here
});
```
