Rumah > pembangunan bahagian belakang > Golang > Permudahkan Respons API REST Anda dengan Milogo untuk Gin-Gonic

Permudahkan Respons API REST Anda dengan Milogo untuk Gin-Gonic

DDD
Lepaskan: 2024-11-27 10:27:09
asal
436 orang telah melayarinya

Simplify Your REST API Responses with Milogo for Gin-Gonic

Gin-Gonic Middleware yang melaksanakan corak pemilihan medan

Di syarikat saya, kami menggunakan Go untuk membina alatan dalaman. Baru-baru ini saya bekerja dalam API REST menggunakan gin-gonic, yang memerlukan memaparkan banyak data merentas banyak titik akhir.

Seseorang mesti mempunyai ciri dalam senario jenis ini, ialah penomboran, tetapi corak yang sering diabaikan ialah tindak balas separa (a.k.a pemilihan medan). Ia juga merupakan tambahan yang sangat bagus untuk menapis jumlah data dalam respons pelayan web anda.

Apakah pemilihan medan?

Mari kita jelaskan dahulu apa yang saya maksudkan dengan pemilihan medan. Bayangkan anda mempunyai titik akhir berikut:

// > GET /api/products
[
  {
    "id": 1,
    "createdAt": "2024-18-11",
    "updatedAt": "2024-18-11",
    "code": "1",
    "price": {
      "amount": 100,
      "currency": "EUR"
    },
    "manufacturedBy": "myshop",
    "stock": 552,
    ...
  },
  ...
]
Salin selepas log masuk

Menggunakan respons separa, pelanggan boleh menapis output dengan parameter pertanyaan medan, mis.

// > GET /api/products?fields=code,price
[
  {
    "code": "1",
    "price": {
      "amount": 100,
      "currency": "EUR"
    }
  },
  ...
]
Salin selepas log masuk

Hanya medan yang diisytiharkan dalam parameter pertanyaan dikembalikan. Mengurangkan saiz muatan dan menjimatkan lebar jalur.

Memperkenalkan Milogo

Saya tidak menemui sebarang pelaksanaan yang tersedia untuk corak ini, jadi saya memutuskan untuk menciptanya sendiri, dan itulah cara Milogo dilahirkan.
Milogo ialah perisian tengah Gin yang memproses respons API, menapis keluar medan yang dinyatakan dalam parameter pertanyaan medan dan hanya mengembalikan data yang diminta.

Beberapa ciri utama yang tersedia:

  • Sokongan untuk objek json dan tatasusunan json.
    Jadi Milogo boleh menapis medan untuk respons JSON yang bermula dengan tatasusunan item atau hanya dengan satu item.

  • Sokongan untuk menapis medan dalam objek json bersarang.
    Milogo juga menyokong penapisan objek JSON bersarang dengan format berikut cth. kod, harga(jumlah)

  • Sokongan untuk json yang dibalut dengan json lain.
    Kadangkala respons JSON dibalut dengan objek JSON lain, sokongan Milogo menapis muatan sebenar (lihat contoh dibalut):

// GET /products?fields=code,price(amount)
{
  "data": [
    {
      "code": 1,
      "price": {
        "amount": 100
      }
    },
    ...
  ],
  "_metadata": {
    ...
  }
}
Salin selepas log masuk

Bermula

Seperti mana-mana middleware gin, Milogo sangat mudah digunakan dan disediakan, anda boleh mengikuti README dalam repositori github, tetapi pada asasnya:

r := gin.Default()
r.Use(Milogo())
Salin selepas log masuk

cukup untuk menambah perisian tengah Milogo pada api anda.

Dalam contoh sebelumnya, Milogo digunakan pada setiap titik akhir, tetapi ia juga boleh digunakan hanya pada sekumpulan titik akhir, atau hanya pada titik akhir tertentu, mis.

group := r.Group("/products", milogo.Milogo())
group.GET("", productsHandler)
Salin selepas log masuk

Dalam contoh sebelumnya, hanya kumpulan /produk yang akan menggunakan perisian tengah Milogo.

Kesimpulan

Milogo direka untuk memudahkan pembangunan REST API dan meningkatkan interaksi pelanggan-pelayan. Lihat repositori GitHub untuk contoh dan dokumentasi.

Jangan segan-segan untuk menghubungi atau menyumbang — mari kita sama-sama cekapkan API REST!

Atas ialah kandungan terperinci Permudahkan Respons API REST Anda dengan Milogo untuk Gin-Gonic. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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