1.1.0 • Published 3 years ago

egg-reply v1.1.0

Weekly downloads
2
License
MIT
Repository
github
Last release
3 years ago

egg-reply

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Restful API 接口响应结构定义 Egg 中间件,支持符合标准 HTTP 状态码 Restful API 标准和业界比较通用的 JSON 型 Restful API 标准。

依赖说明

  1. 接口响应的 HTTP 状态码固定为 200
字段说明
code
success
data
msg请求状态描述

依赖的 egg 版本

egg-reply 版本egg 1.x
1.x😁
0.x

依赖的插件

开启插件

声明使用插件

// config/plugin.js

// CommonJS
exports.reply = {
  enable: true,
  package: 'egg-reply',
};

// ES6 Module
export default {
  reply: {
    enable: true,
    package: 'egg-reply',
  },
};

使用场景

方便定义前后端通信的数据结构,定义标准化的接口返回结构。

import { Controller } from 'egg';

class OrderController extends Controller {
  public async index() {
    this.ctx.success([
      { id: 1, name: 'Ben' },
      { id: 2, name: 'Tom' },
      { id: 3, name: 'Jack' },
    ]);
    // Output:
    // {
    //   { id: 1, name: 'Ben' },
    //   { id: 2, name: 'Tom' },
    //   { id: 3, name: 'Jack' }
    // }
  }
}

API

ctx.success

表示接口处理成功,HTTP 状态码默认 200,code 字段默认 200, successtrue

语法:

this.ctx.success(data?: any, msg?: string, extra?: any)
参数说明
data请求数据
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.fail

表示请求失败,HTTP 状态码默认 400,code 字段默认 400, successfalse

语法:

this.ctx.fail(code?: string, msg?: string)
参数说明
code业务自定义状态码(必须为数字类型,否则会转为数字类型,若转换后为 NaN0 则定为 400)
msg请求状态描述

ctx.exception

表示服务端请求处理失败,HTTP 状态码默认 500,code 字段默认 500, successfalse

语法:

this.ctx.exception(code?: string, msg?: string)
参数说明
code业务自定义状态码(必须为数字类型,否则会转为数字类型,若转换后为 NaN0 则定为 400)
msg请求状态描述

ctx.ok

HTTP 状态码为 200,通常用于 HTTP GET 请求的结果,表示成功,。

this.ctx.ok(data?: any, extra?: any)
参数说明
data请求数据
extra全局附加数据,字段、内容不定

ctx.created

HTTP 状态码为 201,通常用于 HTTP POST 请求的结果,表示已在服务器上成功创建了一个或多个新资源。

this.ctx.created(data?: any, extra?: any)
参数说明
data请求数据
extra全局附加数据,字段、内容不定

ctx.noContent

HTTP 状态码为 204,表示服务器已成功完成请求,并且在响应有效负载正文中没有要发送的内容。服务器可能希望以 entity-headers 的形式返回更新的元信息,如果存在,应该将其应用于当前文档的活动视图(如果有的话)。

this.ctx.noContent();

ctx.badRequest

HTTP 状态码为 400,表示请求参数错误。

this.ctx.badRequest(data?: any, msg?: string, extra?: any);
参数说明
data请求数据
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.unauthorized

HTTP 状态码为 401,表示请求需要身份验证。

this.ctx.unauthorized(data?: any, msg?: string, extra?: any);
参数说明
data请求数据
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.forbidden

HTTP 状态码为 403,表示没有权限访问该请求,服务器收到请求但拒绝提供服务。

this.ctx.forbidden(data?: any, msg?: string, extra?: any);
参数说明
data请求数据
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.notFound

HTTP 状态码为 404,表示用户请求的资源不存在。

this.ctx.notFound(data?: any, msg?: string, extra?: any);
参数说明
data请求数据
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.conflict

HTTP 状态码为 409,表示因为请求存在冲突无法处理。例如通过手机号码提供注册功能得 API,当用户提交的手机号已存在时,必须返回此状态码。

this.ctx.conflict(data?: any, msg?: string, extra?: any);
参数说明
data请求数据
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.serverError

HTTP 状态码为 500,在服务器出错时跑出,对于所有的 500 错误,都应该提供完整的错误信息支持,方便追踪调试。

this.ctx.serverError(data?: any, msg?: string, extra?: any);
参数说明
data请求数据
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.reply

自定义响应数据内容

this.ctx.reply({ status, code, data, success, msg, extra });
参数说明
statusHTTP 状态码(如果不传则默认设为 200
code业务自定义状态码(必须为数字类型,否则会转为数字类型,若转换后为 NaN0 则定为 400)
data请求数据
success请求是否处理成功(如果 status200 则必为 true
msg请求状态描述
extra全局附加数据,字段、内容不定

ctx.catch

捕捉错误时使用,HTTP 状态码为 500

参数说明
code业务自定义状态码(必须为数字类型,否则会转为数字类型,若转换后为 NaN0 则定为 400)
err异常实例
msg请求状态描述
extra全局附加数据,字段、内容不定
try {
  throw new Error('Hello world!');
} catch (err) {
  this.ctx.catch(err);
}

详细配置

请到 config/config.default.js 查看详细配置项说明。

提问交流

请到 egg issues 异步交流。

License

MIT