基于 Swoole 构建高性能 Laravel 应用系列 —— 在 Laravel 中集成 Swoole 实现 WebSocket 服务器

在上篇教程中,我们基于 Swoole 实现了简单的 WebSocket 服务器,然后在客户端通过 JavaScript 实现了 WebSocket 客户端,并演示了 WebSocket 的握手和通信过程,今天,学院君将基于 LaravelS 扩展包把 Swoole 集成到 Laravel 项目来实现 WebSocket 服务器,以便于客户端进行 WebSocket 通信从而实现广播功能。...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 实现简单的 WebSocket 服务器及客户端

WebSocket 概述 这篇教程取自社群分享程序员内功修炼系列网络协议篇,其中对 WebSocket 协议的由来、实现原理和通信演示有详细介绍,这里我们仅取中的简单实现篇来介绍,因为在那里也是基于 Swoole 实现 WebSocket 服务器的。 在此之前,有必要对 WebSocket 的原理做简单的说明,WebSocket 复用了 HTTP 协议来实现握手,然后通过请求报文中的 U...

在 Laravel 项目中集成 Swagger 扩展包为 Laravel API 生成接口文档并对接口进行测试

除了上篇介绍的 API 文档生成器扩展包之外,我们还可以基于著名的 Swagger 在 Laravel 项目中为 API 接口生成文档。 Swagger 是一个开源的、用于简化 API 开发的工具集,这些工具集涵盖了 API 开发的整个生命周期,从设计到文档、从测试到部署。 Swagger vs OpenAPI 在介绍基于 Swagger 工具集生成 API 文档之前,我们有必要先了解下...

在 Laravel 中集成 API 文档生成器扩展包为 Dingo API 接口生成文档

上篇教程学院君介绍了 Dingo 自带的 API 文档生成功能,除此之外,我们还可以基于 Laravel 生态的其它 API 文档生成扩展包为 Dingo API 生成文档。比如学院君之前发布的使用 Laravel API 文档生成器扩展包自动为项目生成 API 文档这篇教程使用的 laravel-apidoc-generator 扩展包就可以。 安装配置 安装完该扩展包后,按照教程中的...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(十二)—— 生成 API 文档

为 API 编写文档和编写 API 接口功能同样重要,因为 API 大多是给别人用的,有了具备可读性的文档别人才知道怎么调用,以及如何处理返回结果。为了让文档编写过程更简单,Dingo 扩展包允许你在控制器中添加注解,然后通过 Artisan 命令根据这些注释生成 API 文档。 下面我们就来演示下如何在 Dingo 路由控制器中添加注解并通过这些注解生成相应的 API 文档。 注:通...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(十一)—— 在应用内部请求 Dingo API

Dingo 扩展包花费了很大的精力来提供从应用内部请求 Dingo API 接口的功能,这意味着,通过 Dingo 扩展包实现的 API 接口不仅可以被客户端和第三方应用消费,还可以为应用内部的 Web 路由和其他 API 路由提供数据和服务支持,这样一来,我们就可以构建一个完全基于 API 驱动的应用,支持内部请求的 API 还有一个好处就是可以返回原生数据对象而不是 HTTP 响应对...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(十)—— 路由访问频率限制

所谓频率限制指的是指定时间内允许特定客户端针对单个路由发起请求的次数,也可以通过节流(throttle)这个术语来描述该行为,我们可以通过一个节流器来定义时间范围和请求次数,然后在需要限制访问频率的路由上应用这个节流器进行校验,显然,在 Laravel 中可以通过中间件来实现这个操作。 在 Dingo API 中,我们有两种方式来实现路由访问频率限制,一种是通过 Laravel 框架自带...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(九)—— API 认证实现(下)

在上篇教程中,我们介绍了如何通过 HTTP 基本认证和 JWT 认证实现 Dingo API 的认证,这篇教程,学院君将会给大家介绍如何在 Dingo API 中基于 OAuth 2.0 和自定义认证驱动实现 API 认证。 OAuth 2.0 认证 和 Laravel Passport 一样,Dingo API 的 OAuth 2.0 认证基于第三方扩展包 league/oauth2-...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(八)—— API 认证实现(上)

概述 有些 API 接口需要用户认证之后才能返回响应,有些 API 接口则会根据用户认证与否返回不同的响应数据,Dingo 扩展包支持多个不同的认证驱动,在 Dingo API 中启用认证后,当我们尝试对请求进行认证时就会执行对应的驱动逻辑。下面是 Dingo 开箱支持的认证驱动: HTTP 基本认证(Basic) JSON Web Tokens(JWT) OAuth 2.0(OAut...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(七)—— 错误及异常处理

错误响应 在 Dingo API 中,你可以使用响应构建器支持的多种错误方法生成错误响应: // 通用的错误响应,包含错误消息和状态码 return $this->response->error('404 Not Found', 404); // 返回 404 Not Found 响应,等同于上述返回 404 状态码的错误响应 return $this->response->error...