Cara menggunakan klien go http tersuai dengan kod klien go yang dihasilkan daripada spesifikasi openapi

WBOY
Lepaskan: 2024-02-06 09:55:07
ke hadapan
534 orang telah melayarinya

如何将自定义 go http 客户端与从 openapi 规范生成的客户端 go 代码结合使用

Kandungan soalan

Saya sedang berusaha untuk menjana perpustakaan klien http berdasarkan spesifikasi api format api terbuka.

Arahan yang saya gunakan untuk menjananya adalah serupa dengan ini

openapi-generator生成-g go -i spec.yaml -o code-gen-go -p packagename=mypackage

Ini akan mencipta struktur yang serupa dengan yang di bawah dalam kod yang dijana

type Configuration struct {
    Host             string            `json:"host,omitempty"`
    Scheme           string            `json:"scheme,omitempty"`
    DefaultHeader    map[string]string `json:"defaultHeader,omitempty"`
    UserAgent        string            `json:"userAgent,omitempty"`
    Debug            bool              `json:"debug,omitempty"`
    Servers          ServerConfigurations
    OperationServers map[string]ServerConfigurations
    HTTPClient       *http.Client
}
Salin selepas log masuk

yang httpclient 字段将用于发出请求。理想情况下,应该导入此包,将客户端分配给 httpclient medan, dan mereka sepatutnya boleh membuat permintaan http melalui ini.

Tetapi dalam kes saya, saya perlu menggunakan perpustakaan tersuai untuk membuat permintaan. Katakan perpustakaan saya ialah pelanggan jenis customhttp。我必须使用这个库来创建 *customhttp.client 类型的客户端(这只是 *http.client, tetapi dengan beberapa pemalam tambahan). Bagaimana saya boleh melakukan ini? Adakah mungkin untuk melakukan ini tanpa mengemas kini secara manual kod yang dijana secara automatik?

Saya rasa jika saya boleh mendapatkannya untuk menjana kod untuk httpclient 的类型是一个实现 do kaedah antara muka, saya akan dapat menetapkan pelanggan saya dengannya? Tapi saya pun tak tahu nak buat apa.


Jawapan yang betul


boleh diubah suai melalui go client

Dapatkan templat dari repositori:

openapi-generator-cli author template -g go -o tmp/mygotemplates
Salin selepas log masuk

Anda kini mempunyai salinan setempat: ubah suai templat yang ingin anda sesuaikan, dalam kes ini configuration.mustache.
Di sini anda boleh mengimport kod dan modul yang diperlukan dan menamakan semula kod sedia ada jika perlu. Tambahkan pustaka pelanggan tersuai anda.

Teruskan dan gunakan templat anda sendiri untuk menjana kod:

openapi-generator-cli generate \
-i openapi.yaml \
-t tmp/mygotemplates \
-g go \
-p packageName=myPackage \
-o src
Salin selepas log masuk

Kod yang dihasilkan kini termasuk kod tersuai dan perpustakaan anda. Pendekatan ini memberikan fleksibiliti yang anda perlukan, tetapi dengan kos mengekalkan versi templat tersuai (yang mungkin anda perlu kemas kini pada masa hadapan, contohnya).

Ini adalah artikel tentang penjanaan kod untuk rujukan.

Atas ialah kandungan terperinci Cara menggunakan klien go http tersuai dengan kod klien go yang dihasilkan daripada spesifikasi openapi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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!