PHPackages                             everalan/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. everalan/api

ActiveLibrary

everalan/api
============

放弃了 Dingo\\Api 对系统的侵入式修改，同时又实现了大多数功能，同时增加了一些常用功能，同时支持多套 API 并存，用起来更优雅。A RESTful API package for the Laravel frameworks, Like dingo/api but more simple

1.1.5(5y ago)0110MITPHPPHP &gt;=7.0

Since Jun 27Pushed 5y agoCompare

[ Source](https://github.com/everalan/api)[ Packagist](https://packagist.org/packages/everalan/api)[ RSS](/packages/everalan-api/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (1)Versions (20)Used By (0)

A RESTful API package for the Laravel frameworks, Like dingo/api but more simple

与 `Dingo\Api` 的关系
-----------------

[](#与-dingoapi-的关系)

借鉴了 `Dingo\Api`，但是放弃了对系统的侵入式修改，例如

- 只能使用一个配置文件，无法实现多套接口并存的情况
- 自定义的认证
- 劫持了系统路由，导致 `Response` 被多次渲染，但是只输出了最后一次

`Everalan\Api` 通过使用 `Helpers`、`Middleware` 来显示的定制，并不对系统进行修改，但是又实现了大部分功能。
完全参照 `Dingo\Api` 的语法格式，可以轻松切换过来。

环境要求
----

[](#环境要求)

1. PHP &gt;= 7.0
2. Laravel &gt;= 5.6

安装
--

[](#安装)

```
$ composer require everalan/api
```

用法
--

[](#用法)

### 响应 Response

[](#响应-response)

控制器通过添加 `Helpers` Trait，获取 `$this->response()` 能力，可以响应以下类型内容：

#### 响应单个模型

[](#响应单个模型)

```
use Everalan\Api\Helpers;

class UserController extends Controller
{
    use Helpers;
    public function show(Request $request, $id)
    {
        $user = User::findOrFail($id);
        return $this->response()->item($user, new UserTransformer());
    }
}
```

#### 响应模型集合

[](#响应模型集合)

```
$users = User::all();
return $this->response()->collection($users, new UserTransformer());
```

#### 响应模型分页

[](#响应模型分页)

```
$users = User::paginate();
return $this->response()->paginator($users, new UserTransformer());
```

#### 响应数组

[](#响应数组)

```
$out = [1, 2, 3, 4];
return $this->response()->array($out);
```

#### 设置 `Transformer` 的 `include`

[](#设置-transformer-的-include)

不同于 `Dingo\Api` 只能通过 `QueryString` 的 `include` 参数来设置 `Transformer` 的 `include`，你可以手动制定需要 `include` 的内容。

```
$this->response()->include('user,log');

```

以上响应均通过 [Fractal](https://fractal.thephpleague.com/) 来实现，`include` 参数格式请参考 [Transformers](https://fractal.thephpleague.com/transformers/)

#### 其他响应类型

[](#其他响应类型)

```
return $this->response()->success();
return $this->response()->accepted();
return $this->response()->created();
return $this->response()->noContent();
return $this->response()->error(403, '没有权限访问');
```

### 中间件 Middleware

[](#中间件-middleware)

#### UseGuard

[](#useguard)

`Laravel` 默认的 `Authenticate` 中间件仅在需要登录的接口里提供服务，提供 `Auth::user()`、设置 `guard` 等功能。
使用 `Everalan\Api\Http\Middleware\UseGuard` 中间件可在你需要的任意页面实现设置 `guard`。

```
Route::group([
        'middleware' => ['guard:api'],
    ], function($api) {
    //不需要登录的接口
    $api->get('/login', 'UserController@login');

    $api->group([
        'middleware'    =>  ['auth.api'],
    ], function ($api) {
        //需要登录的接口
    });
});
```

License
-------

[](#license)

MIT

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~36 days

Recently: every ~57 days

Total

19

Last Release

1865d ago

### Community

Maintainers

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

---

Top Contributors

[![everalan](https://avatars.githubusercontent.com/u/3772707?v=4)](https://github.com/everalan "everalan (22 commits)")

### Embed Badge

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

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

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

22.8k69.3k](/packages/grumpydictator-firefly-iii)[spatie/fractalistic

A developer friendly wrapper around Fractal

38715.3M8](/packages/spatie-fractalistic)[yajra/laravel-datatables-fractal

Laravel DataTables Fractal Plugin.

966.9M29](/packages/yajra-laravel-datatables-fractal)[tomaj/nette-api

Nette api

36261.8k4](/packages/tomaj-nette-api)[concrete5/core

Concrete core subtree split

19159.3k48](/packages/concrete5-core)

PHPackages © 2026

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