aedart/athenaeum-http-api

Json based API utilities

Maintainers

👁 aedart

Package info

github.com/aedart/athenaeum-http-api

Homepage

pkg:composer/aedart/athenaeum-http-api

Statistics

Installs: 1 663

Dependents: 0

Suggesters: 0

Stars: 0

10.10.0 2026-06-23 06:46 UTC

Requires (Dev)

None

Suggests

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause 8d6b6040495a85b601e318108293616032000bde

  • Alin Eugen Deac <aedart.woop@gmail.com>

jsonhttpapiAthenaeum

This package is auto-updated.

Last update: 2026-06-23 06:48:02 UTC


README

Opinionated utilities to help shape and format your API, using Laravel's API Resources.

Example

The following example shows an "API Resource", for an Eloquent User model.

use Aedart\Http\Api\Resources\ApiResource;
use Illuminate\Http\Request;

class UserResource extends ApiResource
{
 public function formatPayload(Request $request): array
 {
 return $this->withTimestamps([
 'id' => $this->getResourceKey(),
 'name' => $this->name,
 'roles' => $this->belongsToManyReference('roles')
 ->withLabel('name')
 ->withSelfLink()
 ->withResourceType();
 ]);
 }

 public function type(): string
 {
 return 'user';
 }
}

When a response is returned for a single user, the following JSON will be output:

{
 "data": {
 "id": 34,
 "name": "Retta Altenwerth Jr.",
 "created_at": "2022-10-21T14:51:43+00:00",
 "updated_at": "2022-10-21T14:51:43+00:00",
 "roles": [
 {
 "id": 23,
 "name": "Machine Operator",
 "type": "role",
 "self": "http://localhost/roles/23"
 },
 {
 "id": 56,
 "name": "File Clerk",
 "type": "role",
 "self": "http://localhost/roles/56"
 }
 ]
 },
 "meta": {
 "type": "user",
 "self": "http://localhost/users/34"
 }
}

Documentation

Please read the official documentation for additional information.

Repository

The mono repository is located at github.com/aedart/athenaeum

Versioning

This package follows Semantic Versioning 2.0.0

License

BSD-3-Clause, Read the LICENSE file included in this package