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 }
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.
boleh diubah suai melalui go client
Dapatkan templat dari repositori:
openapi-generator-cli author template -g go -o tmp/mygotemplates
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
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!