aedart/athenaeum-http-api
Athenaeum Http Api
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
Related Packages
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 10.23.0 | ^8.4 | ^v13.37.0 | BSD-3-Clause | |
| 10.22.0 | ^8.4 | ^v13.35.0 | BSD-3-Clause | |
| 10.21.0 | ^8.4 | ^v13.33.0 | BSD-3-Clause | |
| 10.20.0 | ^8.4 | ^v13.32.0 | BSD-3-Clause | |
| 10.19.0 | ^8.4 | ^v13.31.0 | BSD-3-Clause | |
| 10.18.0 | ^8.4 | ^v13.30.1 | BSD-3-Clause | |
| 10.17.0 | ^8.4 | ^v13.26.1 | BSD-3-Clause | |
| 10.16.1 | ^8.4 | ^v13.25.0 | BSD-3-Clause | |
| 10.16.0 | ^8.4 | ^v13.25.0 | BSD-3-Clause | |
| 10.15.0 | ^8.4 | ^v13.21.1 | BSD-3-Clause | |
| 10.14.0 | ^8.4 | ^v13.20.0 | BSD-3-Clause | |
| 10.13.0 | ^8.4 | ^v13.19.0 | BSD-3-Clause | |
| 10.12.0 | ^8.4 | ^v13.18.1 | BSD-3-Clause | |
| 10.11.0 | ^8.4 | ^v13.17.0 | BSD-3-Clause | |
| 10.10.0 | ^8.4 | ^v13.16.1 | BSD-3-Clause | |
| 10.9.0 | ^8.4 | ^v13.14.0 | BSD-3-Clause | |
| 10.8.0 | ^8.4 | ^v13.12.0 | BSD-3-Clause | |
| 10.7.0 | ^8.4 | ^v13.11.2 | BSD-3-Clause | |
| 10.6.0 | ^8.4 | ^v13.9.0 | BSD-3-Clause | |
| 10.5.0 | ^8.4 | ^v13.8.0 | BSD-3-Clause | |
| 10.4.0 | ^8.4 | ^v13.6.0 | BSD-3-Clause | |
| 10.3.0 | ^8.4 | ^v13.5.0 | BSD-3-Clause | |
| 10.2.0 | ^8.4 | ^v13.3.0 | BSD-3-Clause | |
| 10.1.0 | ^8.4 | ^v13.3.0 | BSD-3-Clause | |
| 10.0.0 | ^8.4 | ^v13.2.0 | BSD-3-Clause | |
| 9.25.1 | ^8.3 | ^v12.53.0 | BSD-3-Clause | |
| 9.25.0 | ^8.3 | ^v12.53.0 | BSD-3-Clause | |
| 9.24.0 | ^8.3 | ^v12.52.0 | BSD-3-Clause | |
| 9.23.0 | ^8.3 | ^v12.50.0 | BSD-3-Clause | |
| 9.22.0 | ^8.3 | ^v12.48.1 | BSD-3-Clause |
Showing the latest 30 of 127. See every release on Packagist
Pre-releases (1)
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 7.0.0-alpha.1 | ^8.1 | ^v10.0.0 | BSD-3-Clause |