PHPackages                             maurienejunior/lazy-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. maurienejunior/lazy-api

ActiveLibrary[API Development](/categories/api)

maurienejunior/lazy-api
=======================

A generic api to helper lazy people like me

0147PHP

Since Aug 22Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/maurienefirmino/lazyapi)[ Packagist](https://packagist.org/packages/maurienejunior/lazy-api)[ RSS](/packages/maurienejunior-lazy-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Documentação do Package LazyAPI
===============================

[](#documentação-do-package-lazyapi)

Visão Geral
-----------

[](#visão-geral)

O LazyAPI é um package Laravel que facilita a criação de APIs CRUD (Create, Read, Update, Delete) de forma rápida e padronizada. Ele fornece uma estrutura base que automatiza operações comuns de API, incluindo filtragem avançada, paginação, ordenação e exportação para Excel.

Estrutura do Package
--------------------

[](#estrutura-do-package)

### Arquivos Principais

[](#arquivos-principais)

- **LazyApiRoutes.php** - Gerador de rotas CRUD básicas
- **LazyApiControllerTrait.php** - Trait com métodos padrão para controllers
- **LazyApiService.php** - Camada de serviço com lógica de negócio
- **LazyApiRepository.php** - Camada de acesso a dados
- **LazyApiHttp.php** - Respostas HTTP padronizadas
- **LazyApiFile.php** - Utilitários para manipulação de arquivos
- **Excel.php** - Exportação de dados para CSV
- **LazyApiServiceProvider.php** - Service Provider do package

Como Usar
---------

[](#como-usar)

### 1. Configuração de Rotas

[](#1-configuração-de-rotas)

```
use maurienejunior\lazyapi\LazyApiRoutes;

// No arquivo de rotas (api.php ou web.php)
LazyApiRoutes::basicApiWithPrefix('users', UserController::class);
```

Esta linha criará automaticamente as seguintes rotas:

- `GET /users` - Listar todos os usuários
- `GET /users/{id}` - Buscar usuário por ID
- `POST /users` - Criar novo usuário
- `POST /users/update` - Atualizar usuário (método POST)
- `PUT /users` - Atualizar usuário (método PUT)
- `DELETE /users/{id}` - Deletar usuário

### 2. Controller

[](#2-controller)

```
use maurienejunior\lazyapi\LazyApiControllerTrait;

class UserController extends Controller
{
    use LazyApiControllerTrait;

    public function __construct(UserService $service)
    {
        parent::__construct($service);
    }
}
```

### 3. Service

[](#3-service)

```
use maurienejunior\lazyapi\LazyApiService;

class UserService extends LazyApiService
{
    public function __construct(UserRepository $repository)
    {
        parent::__construct($repository);
    }

    // Métodos de validação e hooks personalizados
    public function validate($item)
    {
        // Implementar validações customizadas
        return null; // ou retornar mensagem de erro
    }

    public function modifyItensBeforeSave($item)
    {
        // Modificar dados antes de salvar
        return $item;
    }

    public function afterSave($obj, $item)
    {
        // Ações após salvar
    }
}
```

### 4. Repository

[](#4-repository)

```
use maurienejunior\lazyapi\LazyApiRepository;
use App\Models\User;

class UserRepository extends LazyApiRepository
{
    protected $model = User::class;
    protected $primaryKey = 'id';
    protected $paginate = true;

    protected $fieldsToSearch = [
        ['field' => 'name', 'size' => 50],
        ['field' => 'email', 'size' => 100]
    ];

    protected $fieldsToExport = [
        'id' => 'ID',
        'name' => 'Nome',
        'email' => 'E-mail',
        'created_at' => 'Data de Criação'
    ];

    protected $relationships = ['profile', 'posts'];
}
```

Funcionalidades Avançadas
-------------------------

[](#funcionalidades-avançadas)

### Filtragem de Dados

[](#filtragem-de-dados)

O LazyAPI suporta filtragem avançada através de parâmetros de query:

#### Operadores Básicos

[](#operadores-básicos)

```
GET /users?name=ilike|João
GET /users?age=>|18
GET /users?created_at=between|2023-01-01|2023-12-31
GET /users?status=whereIn|active,pending

```

#### Operadores Suportados

[](#operadores-suportados)

- `=` - Igual
- `>` - Maior que
- `=` - Maior ou igual
- ` [
    // ...
    maurienejunior\lazyapi\LazyApiServiceProvider::class,
],
```

Exemplo Completo
----------------

[](#exemplo-completo)

### Model

[](#model)

```
class User extends Model
{
    protected $fillable = ['name', 'email', 'password'];

    public function profile()
    {
        return $this->hasOne(Profile::class);
    }
}
```

### Repository

[](#repository)

```
class UserRepository extends LazyApiRepository
{
    protected $model = User::class;
    protected $fieldsToSearch = [
        ['field' => 'name', 'size' => 100],
        ['field' => 'email', 'size' => 100]
    ];
    protected $fieldsToExport = [
        'id' => 'ID',
        'name' => 'Nome',
        'email' => 'E-mail'
    ];
}
```

### Service

[](#service)

```
class UserService extends LazyApiService
{
    public function validate($item)
    {
        if (empty($item['name'])) {
            return 'Nome é obrigatório';
        }
        return null;
    }
}
```

### Controller

[](#controller)

```
class UserController extends Controller
{
    use LazyApiControllerTrait;

    public function __construct(UserService $service)
    {
        parent::__construct($service);
    }
}
```

### Rotas

[](#rotas)

```
LazyApiRoutes::basicApiWithPrefix('users', UserController::class);
```

Com essa configuração, você terá uma API completa para gerenciar usuários com todas as funcionalidades do LazyAPI.

Vantagens
---------

[](#vantagens)

- **Rapidez no desenvolvimento** - Reduz drasticamente o tempo de criação de APIs CRUD
- **Padronização** - Mantém consistência entre diferentes endpoints
- **Flexibilidade** - Permite customização através de hooks
- **Filtragem avançada** - Sistema robusto de filtros e busca
- **Exportação** - Funcionalidade built-in para exportar dados
- **Manutenibilidade** - Código organizado em camadas bem definidas

Considerações
-------------

[](#considerações)

- O package é específico para Laravel
- Requer conhecimento básico de padrões Repository e Service
- Ideal para APIs que seguem padrões CRUD convencionais
- Pode necessitar customização para casos de uso muito específicos

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance44

Moderate activity, may be stable

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b86a9825508910e865886ff62aeffdc4f02c14a6c02088214af7ce36353d84d7?d=identicon)[maurienefirmino](/maintainers/maurienefirmino)

---

Top Contributors

[![maurienefirmino](https://avatars.githubusercontent.com/u/16802782?v=4)](https://github.com/maurienefirmino "maurienefirmino (12 commits)")

### Embed Badge

![Health badge](/badges/maurienejunior-lazy-api/health.svg)

```
[![Health](https://phpackages.com/badges/maurienejunior-lazy-api/health.svg)](https://phpackages.com/packages/maurienejunior-lazy-api)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M475](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M186](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M33](/packages/facebook-php-business-sdk)[microsoft/microsoft-graph

The Microsoft Graph SDK for PHP

65723.5M95](/packages/microsoft-microsoft-graph)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
