Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan klien go http tersuai dengan kod klien go yang dihasilkan daripada spesifikasi openapi

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

WBOY
WBOYke hadapan
2024-02-06 09:55:07535semak imbas

如何将自定义 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
}

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam