ducascao / api-maker
Cria endpoints de API de maneira rápida com services e repository
Installs: 2 048
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/ducascao/api-maker
Requires
- illuminate/support: ~7|~8
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
This package is auto-updated.
Last update: 2025-09-29 02:43:40 UTC
README
Cria endpoints de API de maneira rápida com services e repository.
Instalação
Via Composer
$ composer require ducascao/api-maker
- Publicar os stubs para a criação dos arquivos:
$ php artisan api-maker:stub-publish
Configuração
- Abra o arquivo de rotas e registre as rotas do projeto:
ApiMaker::routes();
- Adicione o seguinte marcador
/** API Maker: Routes */para que o ApiMaker implemente automaticamente as rotas criadas:
Route::group(['middleware' => 'auth:api'], function () { /** API Maker: Routes */ });
Uso
- Para utilizá-lo, basta consumir o seguinte endpoint de acordo com o registro feito na configuração:
POST /build/project
- Exemplo de request:
{
"tables": [
{
"name": "Template",
"fields": [
{
"name": "description",
"type": "string"
},
{
"name": "path",
"type": "string"
}
]
},
{
"name": "Customer",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "phone_number",
"type": "string",
"required": false
},
{
"name": "email",
"type": "string",
"required": false
},
{
"name": "template_id",
"type": "unsignedInteger",
"required": false,
"relationship": {
"table": "templates"
}
}
]
}
]
}
- Registre os seguintes providers no seu arquivo config/app.php:
/* * Application Service Providers... */ App\Providers\DomainServiceProvider::class, App\Providers\RepositoryServiceProvider::class,
Atenção
Ao montar o json, respeite o relacionamento das tabelas. A ordem do array também será a ordem das migrations.
Corpo da Request (JSON)
| Atributo | Tipo | Descrição |
|---|---|---|
| tables | Table object | Array de objeto contendo todas as tabelas do projeto |
Table object
| Atributo | Tipo | Descrição |
|---|---|---|
| name | string | Nome da tabela em pascal case no singular |
| fields | Field object | Array de objeto contendo o campos da tabela |
Field object
| Atributo | Tipo | Descrição |
|---|---|---|
| name | string | Nome do campo |
| type | string | Tipo do campo de acordo com a doc do Laravel |
| size | string | Modifica o tamanho do campo |
| required | boolean | Identifica se o campo é obrigatório |
| relationship | string | Tabela relacionada ao campo criado em plural snake case |
Creditos
Licença
MIT. Por favor, consulte o arquivo de licença pra mais informações.