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. [API Development](/categories/api)
4. /
5. everalan/api

ActiveLibrary[API Development](/categories/api)

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 yesterday

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 52% 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

1911d 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

[spatie/laravel-fractal

An easy to use Fractal integration for Laravel applications

1.9k15.7M112](/packages/spatie-laravel-fractal)[spatie/fractalistic

A developer friendly wrapper around Fractal

38515.9M8](/packages/spatie-fractalistic)[flugger/laravel-responder

A Laravel Fractal package for building API responses, giving you the power of Fractal and the elegancy of Laravel.

8901.6M5](/packages/flugger-laravel-responder)[yajra/laravel-datatables-fractal

Laravel DataTables Fractal Plugin.

977.3M29](/packages/yajra-laravel-datatables-fractal)[ellipsesynergie/api-response

Simple package to handle response properly in your API

3781.4M21](/packages/ellipsesynergie-api-response)[craftcms/element-api

Create a JSON API for your elements in Craft

502707.6k9](/packages/craftcms-element-api)

PHPackages © 2026

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