如何快速搭建 Swagger Mock 服务器

本文介绍如何使用 Swagger 搭建 Mock 服务器来模拟 API 接口数据,加速前后端开发的流程。

用 Apifox,节省研发团队的每一分钟

如何快速搭建 Swagger Mock 服务器

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

本文的目标受众

  • 初级到中级编程
  • 了解 API 基础知识的人
  • 想要使用 OpenAPI 快速尝试 Mock 服务器的人

 

本文的目标

  • 学习搭建模拟服务器环境
  • 了解如何使用 Swagger
  • 了解如何使用 OpenAPI 编写特定的 API 设计

 

OpenAPI

官方文档解释如下。

OpenAPI 规范(以前称为 Swagger 规范)是 REST API 的 API 描述格式。

此外,OpenAPI 文件可以如下描述整个 API,是一种允许以 yaml 或 JSON 格式描述 RESTful API 的格式。

  • 可用端点 (/user) 和每个端点上的操作 (GET /users, POST /users)
  • 参数操作和输入/输出
  • 身份验证方法

 

Swagger  介绍

Swagger 是一组用于使用 OpenAPI 设计 REST API 的工具。具体来说,有以下工具:

工具名称解释
Swagger Editor基于浏览器的编辑器,允许你编写 OpenAPI 定义。
Swagger UI将 OpenAPI 定义呈现为交互式文档。
Api CodeGen从 OpenAPI 定义生成服务器存根和客户端库。

 

prism 简介

Prism 是一个用于 API 模拟和合同测试的软件包集,支持 OpenAPI v2(以前称为 Swagger)和 OpenAPI v3.x 。它具有以下功能:

  1. 模拟服务器:可以基于任何 API 规范文档生成逼真的模拟服务器。
  2. 验证代理:可用于 API 消费者和开发人员进行合同测试。
  3. 全面的 API 规范支持:支持 OpenAPI v3.1、OpenAPI v3.0、OpenAPI v2.0(以前的 Swagger)和 Postman 集合。

Prism 可以帮助开发人员更好地测试和调试他们的API,并确保他们符合规范。此外,它还提供了一个方便的方法来模拟 API,使前端人员可以在实际 API 可用之前开始工作,就不用一直等着后端开发完真正的接口了。

 

快速上手 Prism

安装 prism

yarn global add @stoplight/prism-cli
curl -L https://raw.githack.com/stoplightio/prism/master/install | sh

 

运行 Mock 服务

prism mock https://raw.githack.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore-expanded.yaml

 

验证服务状态

Swagger 验证服务状态
验证服务状态

通过使用模拟服务器,你可以轻松地测试与 OpenAPI 的数据交换,而无需构建服务器端环境。是不是很方便。

 

为 Nextjs 集成 Swagger 文档

import { GetStaticProps, InferGetStaticPropsType } from 'next';
import { createSwaggerSpec } from 'next-swagger-doc';
import dynamic from 'next/dynamic';
import 'swagger-ui-react/swagger-ui.css';
const SwaggerUI = dynamic<{spec: any;}>(import('swagger-ui-react'), { ssr: false });
function ApiDoc({ spec }: InferGetStaticPropsType<typeof getStaticProps>) {
return <SwaggerUI spec={spec} />;
}
export const getStaticProps: GetStaticProps = async () => {
const spec: Record<string, any> = createSwaggerSpec({definition: {
openapi: '3.0.0',info: {title: 'Next Swagger API Example',version: '1.0',},},});return {props: {
      spec,},};};
      
export default ApiDoc;

 

创建 next-swagger-doc.json

{
  "apiFolder": "pages/api",
  "schemaFolders": ["models"],
  "definition": {
    "openapi": "3.0.0",
    "info": {
      "title": "Next Swagger API Example",
      "version": "1.0"
    }
  }
}

 

执行命令生成 doc.json

yarn next-swagger-doc-cli next-swagger-doc.json

   

更好的方式

用这个文件就可以结合 prism 给 next-swagger-doc.json, 就可以给 front-end 项目提供接口了, 这样就不会阻碍团队成员开发了。有人可能会说自己多搭一个服务比较麻烦,有没有免费且在线的版本, 答案是有的,Apifox。

 

Apifox 是一个 API 协作工具,可以用来创建、维护和 Mock API。与其他 Mock 数据工具不同的是,Apifox 的 Mock 功能可以根据内置规则自动识别各种字段,包括图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等,还支持用户自定义规则库,满足各种个性化需求,同时支持正则表达式、通配符等方式来匹配字段名自定义 mock 规则。使用 Apifox,用户只需要在界面中定义好请求参数和返回数据结构,系统会自动生成 Mock 服务并提供 Mock 地址,非常简单方便。

 

除了 Mock 数据,Apifox 还提供了前置操作、后置操作、持续集成、代码生成等实用功能,同时支持自定义规则、手动编写 mockjs 等高级设置。因此,很多人使用 Apifox 的免费 Mock 功能来快速生成和管理 Mock 数据。

Apifox 新版
Apifox 

知识扩展: