一 简介
旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API
1.1 平台介绍
YApi 是高效 、易用 、功能强大 的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
1.2 平台特性
- 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
- 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
- 类似 postman 的接口调试
- 自动化测试, 支持对 Response 断言
- MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
- 支持 postman, har, swagger 数据导入
- 免费开源,内网部署,信息再也不怕泄露了
二 部署
2.1 环境准备
YApi服务依赖于mongodb 作为底层存储,所以搭建服务之前需要配置mongo环境,这里可以参考前面的文章
Mongo集群搭建
2.2 配置服务
deploy
kind: Deployment
apiVersion: apps/v1
metadata:
name: yapi
namespace: yapi
labels:
app: yapi
annotations:
deployment.kubernetes.io/revision: '7'
kubesphere.io/creator: admin
spec:
replicas: 1
selector:
matchLabels:
app: yapi
template:
metadata:
name: yapi
creationTimestamp: null
labels:
app: yapi
annotations:
kubesphere.io/restartedAt: '2022-03-07T07:07:24.975Z'
spec:
volumes:
- name: yapi-config
configMap:
name: yapi-config
items:
- key: config.json
path: config.json
defaultMode: 420
containers:
- name: yapi
image: 'harbor.huhuhahei.cn/huhuhahei/yapi:1.9.1'
ports:
- containerPort: 3000
protocol: TCP
resources: {}
volumeMounts:
- name: yapi-config
mountPath: /opt/yapi/config.json
subPath: config.json
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
svc
kind: Service
apiVersion: v1
metadata:
name: yapi
namespace: yapi
labels:
app: yapi
annotations:
kubesphere.io/creator: admin
spec:
ports:
- protocol: TCP
port: 3000
targetPort: 3000
nodePort: 31257
selector:
app: yapi
clusterIP: 10.98.149.20
type: NodePort
sessionAffinity: None
externalTrafficPolicy: Cluster
configmap
kind: ConfigMap
apiVersion: v1
metadata:
name: yapi-config
namespace: yapi
annotations:
kubesphere.io/creator: admin
data:
config.json: |-
{
"port": "3000",
"adminAccount": "admin@admin.com",
"db": {
"connectString": "mongodb://mongo-0.mongo.mongo:27017,mongo-1.mongo.mongo:27017,mongo-2.mongo.mongo:27017/yapi?replicaSet=rs0",
"user": "yapi",
"pass": "yapi"
}
}
2.3 交付k8s
kubectl apply -f .
初始化数据库
这里需要进入容器进行初始化用户否则admin用户无法登录
rm -f /opt/yapi/init.lock
node /opt/yapi/vendors/server/install.js
# 初始化后admin 用户:admin@admin.com 密码:ymfe.org