acidjazz / metapi
Laravel API helpers
Installs: 1 770
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 1
Forks: 2
Open Issues: 1
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- illuminate/support: 5.* || 6.* || 7.* || 8.*
- jasongrimes/paginator: ^1.0
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: ^5.2
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2021-01-02 04:26:56 UTC
README
Own your endpoint
metapi's main purpose is to help make sure your endpoint responses are consistent. By using the built in helper functions like ->option()...->verify
, ->render()
, ->success()
and ->error()
they will all share the same consistent standardized output reflecting the options available, parameters provided, and results.
Dracula dark theme with laravel-debugbar
Features
- Endpoint benchmarking
- Laravel Validation wrapper that reflects requirements
- Support for JSON and JSONP
- Interactive tree browsing with search thanks to jsoneditor
- Dracula Dark theme support to pair with laravel-debugbar
Installation
Install metapi with composer:
composer require acidjazz/metapi
Add the trait
(
app/Http/Controllers/Controller.php
is recommended)
<?php use acidjazz\metapi\MetApi; class Controller { use Metapi;
Examples
<?php namespace App\Http\Controllers; use acidjazz\metapi\MetApi; class OrgController extends Controller { use MetApi; /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $this ->option('approved', 'nullable|boolean'); ->option('type', 'nullable|in:this,that'); ->verify(); ... $this->render($results);
GET /endpoint?approved=1
{ "benchmark": 0.011060953140258789, "query": { "defaults": [], "options": { "approved": "nullable|boolean", "type": "nullable|in:this,that" }, "params": { "approved": "1" }, "combined": { "approved": "1" } }, "data": [ {
GET /endpoint?callback=bob
bob({ "benchmark": 0.011017084121704102, "query": { "defaults": [], "options": { "approved": "nullable|boolean", "type": "nullable|in:this,that" }, "params": [], "combined": [] }, "data": [ {