简体中文
โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อแปลเอกสาร WeCom เป็นข้อกำหนด OpenAPI เพื่อให้คุณสามารถสร้างโค้ดไคลเอ็นต์ในภาษาการเขียนโปรแกรมต่างๆ ได้ ขณะนี้ เรากำลังใช้ข้อกำหนด OpenAPI เวอร์ชัน 3.x
$ npm install
เมื่อแอปทำงาน ไฟล์ OpenAPI Specification openapi.yaml
จะถูกสร้างขึ้น คุณสามารถเปิด http://localhost:3000/openapi
เพื่อดู Swagger UI
$ npm run start
swagger-codegen เป็นเครื่องมือยอดนิยมในการสร้างโค้ดจาก OpenAPI Specification แต่ถ้าคุณใช้ Golang แนะนำให้ใช้ go-swagge
go-swagge ขึ้นอยู่กับ OpenAPI Specification 2.0 ดังนั้นคุณต้องดาวน์เกรดเวอร์ชัน
$ npm install -g api-spec-converter
$ api-spec-converter --from=openapi_3 --to=swagger_2 --syntax=yaml --order=alpha ./openapi.yaml > swagger.yaml
จากนั้นสร้างโค้ด Golang จากไฟล์ swagger.yaml
$ brew tap go-swagger/go-swagger
$ brew install go-swagger
$ mkdir wecom-api && cd wecom-api
# NOTE: you need run go mod init to create a go.mod file
$ go mod init wecom-api
$ swagger generate client -f swagger.yaml -t wecom-api
โปรเจ็กต์นี้อิงจากการรวม Swagger ของ NestJS อ้างถึง OpenAPI (NestJS) เพื่อดูรายละเอียด
nest g --no-spec controller department
โดยปกติแล้ว เราจะประกาศ DTO และการตอบกลับในคลาสที่ต่างกัน
nest g --no-spec class department/Department
@ApiProperty({
required: false,
type: 'string',
isArray: true,
maxItems: 100,
example: '["abel"]',
description: 'user id list, max length is 100',
})
userid_list: string[];
required
, จำเป็นต้องระบุ type
description
example
ที่แนะนำ。 @ApiOperation({
operationId: 'getGroupChat',
summary: 'Get user group detail',
description: 'Get user group detail',
externalDocs: {
url: 'https://developer.work.weixin.qq.com/document/path/92122',
},
})
operationId
ไม่ซ้ำกัน เป็นชื่อฟังก์ชันในโค้ดการสร้างsummary
จำเป็นexternalDocs
ไปยังเอกสารอย่างเป็นทางการของ WeCom ขั้นแรก คุณต้องได้รับ access_token
เพื่ออนุญาตการเรียก API
เบราว์เซอร์มีปัญหา CORS ดังนั้นเราจึงไม่สามารถเข้าถึง wx-work ได้โดยตรง ดังนั้นเราจึงได้มอบตัวแทนให้กับคุณ หากต้องการเข้าถึงให้ใช้ http://localhost:3000/cgi-bin