Loading repository data…
Loading repository data…
bmagnomax / repository
O pacote é uma solução API genérica desenvolvida em Laravel que oferece funcionalidades avançadas para criação rápida de APIs. Ele inclui um conjunto de recursos prontos para uso, como métodos CRUD, busca avançada com filtros e paginação, busca em relacionamentos, ordenação, opções de resposta em JSON ou objetos, entre outras.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Bem-vindo ao pacote de API Maximus. Aqui você encontrará informações detalhadas sobre a configuração, os endpoints disponíveis e como usá-los.
Para começar a usar o pacote bmagnomax/maximus-api em seu projeto Laravel, siga estas etapas:
Instale o pacote via Composer:
composer require bmagnomax/maximus-api
No arquivo config/app.php, adicione o seguinte no array providers:
'providers' => [
// ...
MaximusApi\MaximusApiServiceProvider::class,
],
Para publicar o arquivo de configuração maximus.php, execute o comando artesão abaixo:
php artisan vendor:publish --provider="MaximusApi\MaximusApiServiceProvider"
O arquivo maximus.php será então criado dentro do seu diretório config.
Antes de usar a API, você precisará configurar o arquivo config/maximus.php com os modelos que deseja expor e outras configurações. Abaixo está um exemplo de configuração:
return [
'models' => [
'user' => App\Models\User::class,
'post' => App\Models\Post::class,
'comment' => App\Models\Comment::class,
// Adicione outros modelos aqui
],
'response_format' => 'json', // Opções: 'json' ou 'object'
'path_models' => 'App\Models\\'
];
Exemplo do controller para o model User:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use MaximusApi\Controllers\AbstractController;
use MaximusApi\Service\ApiService;
class UserController extends AbstractController
{
protected $apiService;
public function __construct(ApiService $apiService)
{
$apiService->setModel(new User());
parent::__construct($apiService);
}
}
?>
A API Maximus utiliza a classe ApiService para gerenciar operações CRUD e pesquisas avançadas.
Abaixo estão listados os endpoints disponíveis na API Maximus:
/api/users)GET /api/users: Retorna todos os usuários cadastrados.
GET /api/users/{id}: Retorna um usuário específico com base no ID.
POST /api/users: Cria um novo usuário.
PUT /api/users/{id}: Atualiza os detalhes de um usuário existente com base no ID.
DELETE /api/users/{id}: Exclui um usuário com base no ID.
GET /api/users/search: Realiza uma pesquisa avançada nos usuários com filtros específicos.
GET /api/users/with: Retorna todos os usuários com seus relacionamentos especificados.
GET /api/users/searchwith: Realiza uma pesquisa avançada nos usuários, incluindo relacionamentos, com opções de paginação e filtros.
GET /api/users/searchwithbyrelations: Realiza uma pesquisa avançada nos usuários, com suporte a campos dos relacionamentos, paginação e ordenação.
Requisição: GET /api/users
Resposta:
[
{
"id": 1,
"name": "John Doe",
"email": "john@example.com"
// outros campos
},
// outros usuários
]
Requisição: POST /api/users
{
"name": "Jane Smith",
"email": "jane@example.com"
// outros campos
}
Resposta:
{
"id": 2,
"name": "Jane Smith",
"email": "jane@example.com"
// outros campos
}
Requisição: GET /api/users/searchwith?relationships=posts,comments
Resposta:
[
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"posts": [
{
"id": 1,
"title": "Post Title",
"content": "Post content"
// outros campos do post
}
],
"comments": [
{
"id": 1,
"text": "Comment text"
// outros campos do comentário
}
]
// outros campos do usuário
},
// outros usuários com relacionamentos
]
Descrição: Retorna uma lista de recursos com suporte para pesquisa avançada, filtragem, ordenação por campos de relacionamentos e paginação.
Requisição:
GET /api/{model}/searchwith
Parâmetros de Consulta:
relationships (opcional): Lista de relacionamentos separados por vírgula para carregar junto com os recursos. searchFields (opcional): Campos e valores para realizar a busca. Use formatos como campo:valor, campo&valor ou campo@valor1,valor2 para diferentes operadores. orderBy (opcional): Campo para ordenação. Padrão é 'id'. sort (opcional): Direção da ordenação. Padrão é 'asc'. page (opcional): Número da página para paginação. Padrão é 1.
Exemplo de Requisição:
GET /api/users/searchwith?relationships=posts,comments&searchFields=name:John,age&orderBy=name&sort=asc&page=2
Exemplo de Resposta:
{ "current_page": 2, "data": [
{
// Recurso com relacionamentos
},
// Outros recursos
],
// Informações de paginação
}
Requisição:
GET /api/users/searchwith?relationships=posts,comments&page=2`
Resposta:
{
"current_page": 2,
"data": [
{
"id": 11,
"name": "User 11",
// outros campos do usuário
"posts": [
{
"id": 21,
"title": "Post Title",
// outros campos do post
}
],
"comments": []
},
// outros usuários com relacionamentos
],
"first_page_url": "/api/users/searchwith?relationships=posts,comments&page=1",
"from": 11,
"last_page": 5,
"last_page_url": "/api/users/searchwith?relationships=posts,comments&page=5",
"next_page_url": "/api/users/searchwith?relationships=posts,comments&page=3",
"path": "/api/users/searchwith",
"per_page": 10,
"prev_page_url": "/api/users/searchwith?relationships=posts,comments&page=1",
"to": 20,
"total": 50
}
Considerações Finais Esta documentação cobre os principais endpoints disponíveis na API do sistema Maximus. Você pode ajustar os parâmetros de consulta para atender às suas necessidades de pesquisa, filtragem e ordenação. Lembre-se de ajustar as configurações em config/maximus.php conforme necessário.
Fique à vontade para explorar mais funcionalidades da API e adaptá-la conforme suas necessidades. Para quaisquer dúvidas ou problemas, não hesite em entrar em contato com nossa equipe de suporte.