>백엔드 개발 >Golang >Gin-Gonic용 Milogo를 사용하여 REST API 응답을 단순화하세요

Gin-Gonic용 Milogo를 사용하여 REST API 응답을 단순화하세요

DDD
DDD원래의
2024-11-27 10:27:09401검색

Simplify Your REST API Responses with Milogo for Gin-Gonic

필드 선택 패턴을 구현한 Gin-Gonic Middleware

우리 회사에서는 Go를 사용하여 내부 도구를 구축합니다. 최근에 저는 gin-gonic을 사용하여 많은 엔드포인트에 걸쳐 많은 데이터를 표시해야 하는 REST API에서 작업했습니다.

이러한 시나리오에서 반드시 갖춰야 할 기능은 페이지 매김이지만, 종종 간과되는 패턴은 부분 응답(일명 필드 선택)입니다. 이는 또한 웹 서버의 응답에서 데이터의 양을 필터링하는 데 매우 유용한 추가 기능입니다.

분야 선택이란 무엇입니까?

먼저 필드 선택이 무엇을 의미하는지 명확히 하겠습니다. 다음과 같은 엔드포인트가 있다고 가정해 보세요.

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

부분 응답을 사용하여 클라이언트는 필드 쿼리 매개변수로 출력을 필터링할 수 있습니다.

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

오직 쿼리 매개변수에 선언된 필드가 반환됩니다. 페이로드 크기를 줄이고 대역폭을 절약합니다.

밀로고를 소개합니다

이 패턴에 사용할 수 있는 구현을 찾을 수 없어서 직접 만들기로 결정했고 그렇게 해서 Milogo가 탄생했습니다.
Milogo는 API 응답을 처리하고, 필드 쿼리 매개변수에 지정된 필드를 필터링하고, 요청된 데이터만 반환하는 Gin 미들웨어입니다.

사용 가능한 주요 기능:

  • json 개체 및 json 배열을 지원합니다.
    따라서 Milogo는 항목 배열 또는 단일 항목으로 시작하는 JSON 응답에 대한 필드를 필터링할 수 있습니다.

  • 중첩된 json 개체의 필드 필터링을 지원합니다.
    Milogo는 또한 다음 형식으로 중첩된 JSON 객체 필터링을 지원합니다. 코드,가격(금액)

  • 다른 json으로 래핑된 json을 지원합니다.
    때로는 JSON 응답이 다른 JSON 개체에 래핑되어 Milogo가 실제 페이로드 필터링을 지원합니다(래핑된 예 참조).

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

시작하기

다른 진 미들웨어와 마찬가지로 Milogo는 사용 및 설정이 매우 쉽습니다. github 저장소의 README를 따라갈 수 있지만 기본적으로는 다음과 같습니다.

r := gin.Default()
r.Use(Milogo())

Milogo 미들웨어를 API에 추가하는 데 충분합니다.

이전 예에서 Milogo는 모든 단일 엔드포인트에 적용되었지만 엔드포인트 그룹에만 적용하거나 특정 엔드포인트에만 적용하는 것도 가능합니다.

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

이전 예에서는 /products 그룹에만 Milogo의 미들웨어가 적용되었습니다.

결론

Milogo는 REST API 개발을 단순화하고 클라이언트-서버 상호 작용을 개선하도록 설계되었습니다. 예제와 문서는 GitHub 저장소를 확인하세요.

언제든지 연락하거나 기여해 주세요. 함께 REST API를 효율적으로 만들어 보세요!

위 내용은 Gin-Gonic용 Milogo를 사용하여 REST API 응답을 단순화하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.