ducascao / api-maker
Cria endpoints de API de maneira rápida com services e repository
Installs: 1 994
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- illuminate/support: ~7|~8
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
This package is auto-updated.
Last update: 2025-03-29 00:50:50 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.