Menggunakan Swagger dalam Beego dan menggabungkannya dengan Postman untuk ujian API

王林
Lepaskan: 2023-06-22 11:02:14
asal
1095 orang telah melayarinya

Beego ialah rangka kerja web untuk pembangunan pesat aplikasi web bahasa Go. Ia menyediakan banyak ciri dan alatan untuk memudahkan proses pembangunan. Ciri dan alatan ini termasuk sokongan untuk Swagger (alat penjanaan dokumentasi API) dan Postman (alat ujian API), kedua-duanya membolehkan pembangun mengurus dan menguji API dengan mudah Artikel ini akan memperkenalkan cara menggunakan Swagger dalam Beego dan menggabungkan prestasi Postman Ujian API.

1. Pasang Swagger

Swagger ialah rangka kerja sumber terbuka untuk mereka bentuk, membina, mendokumenkan dan menguji perkhidmatan web RESTful. Dengan Swagger, anda boleh melihat permintaan dan respons setiap kaedah API dalam dokumentasi API yang dijana secara dinamik.

Pertama, anda perlu memasang Swagger. Masukkan arahan berikut:

go get -u github.com/swaggo/swag/cmd/swag

Selepas pemasangan selesai, masukkan arahan berikut sekali lagi:

swag init

Ini akan menjana folder dokumen dalam akar aplikasi Beego anda yang mengandungi dokumentasi Swagger yang dijana.

2. Sepadukan Swagger ke dalam Beego

Seterusnya, anda perlu menyepadukan Swagger ke dalam Beego. Untuk melakukan ini, anda perlu memperkenalkan ketergantungan swagger dan beego/konteks dalam fail main.go anda.

import(

"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
_ "your-app-doc-path/docs"
Salin selepas log masuk

)

Sekarang, tambah kod berikut dalam fungsi init() fail main.go anda:

func main( ) {

if beego.BConfig.RunMode == beego.DEV {
    beego.BConfig.WebConfig.DirectoryIndex = true
    beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
    // 添加路由,可以自定义,这里设置为/swagger
    beego.InsertFilter("/*", beego.BeforeRouter, func(ctx *context.Context) {
        ctx.Output.Header("Access-Control-Allow-Origin", "*")
        ctx.Output.Header("Access-Control-Allow-Headers", "Content-Type,Token")
        ctx.Output.Header("Access-Control-Allow-Methods", "POST,GET")
    })
}

// 注册Swagger路由
beego.BConfig.WebConfig.StaticDir["/docs"] = "docs"
beego.BeeApp.Handlers.Get("/docs/*", func(ctx *context.Context) {
    ctx.Output.Header("Content-Type", "text/html;charset=utf-8")
    ctx.Output.Body(swaggerFiles.Index)
})
Salin selepas log masuk

}

Kod ini akan mencipta folder swagger dalam direktori akar aplikasi anda untuk menyimpan fail UI Swagger. Apabila Beego dimulakan, direktori UI Swagger akan didaftarkan sebagai laluan statik. Oleh kerana UI Swagger ialah satu set fail HTML, CSS dan JavaScript statik, fail tersebut diakses daripada direktori sumber statik.

Anda perlu membuka UI Swagger dalam penyemak imbas anda dengan memasukkan URL berikut:

http://localhost:[port]/docs/index.html

Di sini, sila Gantikan [port] dengan nombor port pelayan anda.

3. Tulis ulasan Swagger

Selepas menyepadukan Swagger, kini anda perlu menulis ulasan Swagger untuk API anda. Ia boleh dilaksanakan dengan cara berikut:

Pertama, cipta fail swagger.go, dan kemudian tambah kod berikut:

pengawal pakej

/* Kategori operasi
*/

// swagger:parameter tambah sub
taip struct Operands {

// The first operand
// in: path
// required: true
A int `json:"a"`
// The second operand
// in: path
// required: true
B int `json:"b"`
Salin selepas log masuk

}

/* Hasil pulangan
*/

/ / swagger:response OperResult
taip OperandsResultWrapper struct {

// in:body
Body struct {
    // 运算结果
    Result int `json:"result,omitempty"`
}
Salin selepas log masuk

}

/ Tambah/

// swagger:route GET /add /{a}/{b} add
//
// Untuk tambahan
//
// Predikat yang disokong: GET
// Parameter:
// + A: (laluan) - operan pertama (hanya boleh menjadi integer)
// + B: (laluan) - operan kedua (hanya boleh menjadi integer)
// Kandungan yang diterima:
// Menghasilkan:
// + Hasil pengembalian (aplikasi/json)
// + Ralat (aplikasi/json)
//
// swagger:parameter tambah
// swagger:respons OperResult
func (o *OperationController) Add() {

// ...
Salin selepas log masuk

}

Di sini, kami mentakrifkan anotasi Swagger untuk menerangkan permintaan dan respons API. Anotasi menggunakan sintaks Swagger untuk menerangkan peraturan penghalaan, parameter arahan dan jenis hasil. Khususnya:

  • Kategori operasi (jenis parameter) menerangkan parameter yang dihantar kepada API.
  • Hasil pulangan (jenis tindak balas) menerangkan bentuk nilai yang dikembalikan oleh API kepada pelanggan.

4. Test API

Kini, aplikasi Beego anda boleh menggunakan Swagger dan mempunyai anotasi Swagger yang sesuai. Seterusnya, anda boleh menggunakan Posman untuk menguji API anda.

Dalam Posmen, masukkan alamat URL API anda dan parameter yang diperlukan, kemudian pilih kata kerja GET. Anda kemudiannya boleh menyemak sama ada API berfungsi dengan betul menggunakan set ujian seperti yang terdapat dalam fail swagger_generated_api_test.go.

5. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan Swagger dalam Beego digabungkan dengan Posman untuk ujian API. Kami mula-mula memperkenalkan cara memasang Swagger dan kemudian menunjukkan cara menyepadukan Swagger dalam Beego. Seterusnya, kami menunjukkan cara menulis anotasi Swagger dan menggunakan Posman untuk ujian API. Langkah-langkah ini adalah penting bagi mana-mana pembangun yang menggunakan Beego untuk membangunkan API web RESTful, kerana ia menjadikannya lebih pantas dan lebih mudah bagi pembangun untuk membangunkan dan menguji aplikasi web berkualiti tinggi.

Atas ialah kandungan terperinci Menggunakan Swagger dalam Beego dan menggabungkannya dengan Postman untuk ujian API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!