WinCL Product API

Product Controller

OpenAPI Specification

wincl-product-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Wincl Admin Product API
  version: '1.0'
  description: Admin Controller
servers:
- url: https://api.wincl.io:443
  description: Inferred Url
tags:
- name: Product
  description: Product Controller
paths:
  /api/v1/project/product:
    get:
      tags:
      - Product
      summary: Product 리스트
      operationId: productListUsingGET_1
      parameters:
      - name: projectTypes
        in: query
        description: 프로젝트 유형
        required: false
        style: form
        schema:
          type: string
      - name: projectEffects
        in: query
        description: 프로젝트 효과
        required: false
        style: form
        schema:
          type: string
      - name: nationCodes
        in: query
        description: 프로젝트 생성국가
        required: false
        style: form
        schema:
          type: string
      - name: searchKeyword
        in: query
        description: 검색 키워드
        required: false
        style: form
        schema:
          type: string
      - name: sortType
        in: query
        description: 정렬 타입
        required: false
        style: form
        schema:
          type: string
          enum:
          - AMOUNT_ASC
          - AMOUNT_DESC
          - ASC
          - DESC
          - NONE
          - PRICE_ASC
          - PRICE_DESC
          - UNIT_PRICE_ASC
          - UNIT_PRICE_DESC
      - name: pageNum
        in: query
        description: 페이지 넘버
        required: true
        style: form
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: 페이지당 아이템 개수
        required: true
        style: form
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseDataList«Product»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /api/v1/project/product/home:
    get:
      tags:
      - Product
      summary: Home Product
      operationId: homeProductsUsingGET_1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«List«HomeProduct»»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /api/v1/project/product/{id}:
    get:
      tags:
      - Product
      summary: Product 상세정보
      operationId: productInfoUsingGET_1
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«ProductDetail»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /api/v1/project/product/{id}/preview:
    get:
      tags:
      - Product
      summary: Product Preview
      operationId: productInfoPreviewUsingGET
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«ProductDetail»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
components:
  schemas:
    ProductDetail:
      title: ProductDetail
      type: object
      properties:
        agencyRegistry:
          description: 인증기관에 등록된 프로젝트 정보
          $ref: '#/components/schemas/ProjectAgencyRegistry'
        amt_lock:
          type: number
          description: lock 수량
          format: bigdecimal
        amt_offset:
          type: number
          description: offset 수량
          format: bigdecimal
        amt_offset_resrv:
          type: number
          description: offset 예약 수량
          format: bigdecimal
        amt_sold:
          type: number
          description: 팔린 수량
          format: bigdecimal
        amt_stock:
          type: number
          description: 재고 수량
          format: bigdecimal
        areaHectare:
          type: number
          description: 면적 (hectare)
          format: bigdecimal
        assign_vol_proj:
          type: number
          description: 프로젝트의 assign 된 수량
          format: bigdecimal
        attachmentUrls:
          type: array
          description: 첨부 파일 URL 목록
          items:
            type: string
        cert_desc:
          type: string
          description: 인증기관 설명
        corrs_adj:
          type: number
          description: 상응조정률
          format: bigdecimal
        currency:
          type: string
          description: 통화
          enum:
          - KRW
          - USD
        dttm_reg:
          type: integer
          description: 프로덕트 등록 시간
          format: int64
        dttm_reg_cert:
          type: integer
          description: 인증서 인증 날짜
          format: int64
        dttm_upd:
          type: integer
          description: 프로덕트 업데이트 시간
          format: int64
        env_desc:
          type: string
          description: 환경효과 내용
        env_icon:
          type: string
          description: 환경효과 아이콘
        env_ttl:
          type: string
          description: 환경효과 타이틀
        hederaTopicId:
          type: string
          description: 프로젝트 전용 Hedera Topic ID
        id_prod:
          type: string
          description: 프로덕트 아이디
        id_proj:
          type: integer
          description: 프로젝트 아이디
          format: int32
        img_bg_prod:
          type: string
          description: 프로덕트 배경 이미지 url
        img_mobile_bg_prod:
          type: string
          description: 프로덕트 모바일 배경 이미지 url
        img_thumbnail_prod:
          type: string
          description: 프로덕트 썸네일 이미지 url
        img_thumbnail_proj:
          type: string
          description: 프로젝트 썸네일 이미지
        introductionTextEn:
          type: string
          description: 소개글 (영문)
        introductionTextKo:
          type: string
          description: 소개글 (한글)
        locationImageUrl:
          type: string
          description: 프로젝트 위치 URL
        minimum_buy_vol:
          type: number
          description: 최소 구매 수량
          format: bigdecimal
        nationCode:
          type: string
          description: 프로젝트 생성 국가 코드
        nation_nm_en:
          type: string
          description: 프로젝트 생성국가 영어 이름
        nation_nm_kr:
          type: string
          description: 프로젝트 생성국가 한글 이름
        nm_cert_agc:
          type: string
          description: 인증기관 이름
        nm_proj_dev:
          type: string
          description: 프로젝트 개발자 이름
        nm_serial:
          type: string
          description: 프로젝트 인증서 시리얼번호
        productDetailImageUrls:
          type: array
          description: 프로덕트 상세 이미지 url 목록
          items:
            type: string
        productNameEn:
          type: string
          description: 상품 이름 (영어)
        productNameKr:
          type: string
          description: 상품 이름 (한국어)
        productStoryEn:
          type: string
          description: 프로덕트 스토리 (영어)
        productStoryKo:
          type: string
          description: 프로덕트 스토리 (한국어)
        projectEffects:
          type: array
          description: 프로젝트 효과
          items:
            $ref: '#/components/schemas/ProjectEffect'
        projectNameEn:
          type: string
          description: 프로젝트 이름 (영어)
        projectNameKr:
          type: string
          description: 프로젝트 이름 (한국어)
        project_type:
          type: string
          description: 프로젝트 타입 코드 리스트
          enum:
          - AFFORESTATION_REFORESTATION_AND_REVEGETATION
          - AGRICULTURAL_LAND_MANAGEMENT
          - AGRICULTURE_FORESTRY_AND_OTHER_LAND_USE
          - AVOIDED_CONVERSION_OF_GRASSLANDS_AND_SHRUBLANDS
          - CHEMICAL_INDUSTRY
          - CLIMATE_CHANGE_ADAPTION
          - CONSTRUCTION
          - ENERGY
          - ENERGY_DEMAND
          - ENERGY_DISTRIBUTION
          - ENERGY_INDUSTRIES
          - FUGITIVE_EMISSIONS_FROM_FUELS__SOLID_OIL_AND_GAS
          - IMPROVED_FOREST_MANAGEMENT
          - LIVELIHOODS
          - LIVESTOCK_ENTERIC_FERMENTATION_AND_MANURE_MANAGEMENT
          - MANUFACTURING_INDUSTRIES
          - METAL_PRODUCTION
          - MINING_MINERAL_ODUCTION
          - PLASTIC_WASTE_COLLECTION
          - PLASTIC_WASTE_RECYCLING
          - REDUCED_EMISSONS_FROM_FORESTATION_AND_DEGRADATION
          - TRANSPORT
          - UNSPECIFIED
          - WASTE_HANDLING_AND_DISPOSAL
          - WATER_ACCESS_AND_SANITATIO
          - WETLAND_REWETTING_AND_CONSVATION
        status_srv:
          type: string
          description: 프로덕트 상태
          enum:
          - ACTIVE
          - DELETED
          - INACTIVE
          - READY
        tot_vol_proj:
          type: number
          description: 프로젝트의 total 수량
          format: bigdecimal
        unit_price:
          type: number
          description: 톤당 가격
          format: bigdecimal
        unit_price_usd:
          type: number
          description: 톤당 가격 usd
          format: bigdecimal
        vol:
          type: number
          description: 수량
          format: bigdecimal
        yn_corrs_adj:
          type: string
          description: 상응조정률 사용 여부
          enum:
          - N
          - Y
    WinclResponseDataList«Product»:
      title: WinclResponseDataList«Product»
      type: object
      properties:
        code:
          type: string
        currentPageNum:
          type: integer
          description: 현재 페이지 번호
          format: int32
        items:
          type: array
          items:
            $ref: '#/components/schemas/Product'
        message:
          type: string
        pageSize:
          type: integer
          description: 페이지당 아이템 개수
          format: int32
        sortType:
          type: string
          description: 정렬 기준
          enum:
          - AMOUNT_ASC
          - AMOUNT_DESC
          - ASC
          - DESC
          - NONE
          - PRICE_ASC
          - PRICE_DESC
          - UNIT_PRICE_ASC
          - UNIT_PRICE_DESC
        totalCount:
          type: integer
          description: 전체 아이템 개수
          format: int32
        totalPages:
          type: integer
          description: 전체 페이지 수
          format: int32
    Product:
      title: Product
      type: object
      properties:
        cd_nation:
          type: string
          description: 프로젝트 생성국가
        id_prod:
          type: string
          description: 프로덕트 아이디
        id_proj:
          type: integer
          description: 프로젝트 아이디
          format: int32
        img_background_prod:
          type: string
          description: 프로덕트 배경 이미지 url
        img_mobile_background_prod:
          type: string
          description: 프로덕트 모바일 배경 이미지 url
        img_thumbnail_prod:
          type: string
          description: 프로덕트 썸네일 이미지 url
        nm_cert_agc:
          type: string
          description: 탄소배출권 인증기관명
        nm_proj_dev:
          type: string
          description: 프로젝트 개발자 이름
        productNameEn:
          type: string
          description: 상품 이름 (영어)
        productNameKr:
          type: string
          description: 상품 이름 (한국어)
        product_stock_amount:
          type: string
          description: 상품 재고량 (톤)
        projectNameEn:
          type: string
          description: 프로젝트 이름 (영어)
        projectNameKr:
          type: string
          description: 프로젝트 이름 (한국어)
        project_effect:
          type: array
          description: 프로젝트 효과 코드 리스트
          items:
            type: string
        project_type:
          type: string
          description: 프로젝트 타입 코드 리스트
        unit_price:
          type: number
          description: 톤당 가격
          format: bigdecimal
    HomeProduct:
      title: HomeProduct
      type: object
      properties:
        cd_nation:
          type: string
          description: 프로젝트 생성국가
        id_prod:
          type: string
          description: 프로덕트 아이디
        id_proj:
          type: integer
          description: 프로젝트 아이디
          format: int32
        img_background_prod:
          type: string
          description: 프로덕트 배경 이미지 url
        img_mobile_background_prod:
          type: string
          description: 프로덕트 모바일 배경 이미지 url
        img_thumbnail_prod:
          type: string
          description: 프로덕트 썸네일 이미지 url
        nm_prod:
          type: string
          description: 상품 이름
        nm_proj:
          type: string
          description: 프로젝트 이름
        nm_proj_dev:
          type: string
          description: 프로젝트 개발자 이름
        order:
          type: string
          description: 프로덕트 순서
    WinclResponseData«ProductDetail»:
      title: WinclResponseData«ProductDetail»
      type: object
      properties:
        code:
          type: string
        data:
          $ref: '#/components/schemas/ProductDetail'
        message:
          type: string
    WinclResponseData«List«HomeProduct»»:
      title: WinclResponseData«List«HomeProduct»»
      type: object
      properties:
        code:
          type: string
        data:
          type: array
          items:
            $ref: '#/components/schemas/HomeProduct'
        message:
          type: string
    ProjectAgencyRegistry:
      title: ProjectAgencyRegistry
      type: object
      properties:
        agencyId:
          type: integer
          description: 인증기관 ID
          format: int32
        averageAnnualEmissionReduction:
          type: number
          description: 연 평균 탄소감축량
          format: bigdecimal
        mechanism:
          type: string
          description: 메카니즘
        methodology:
          type: string
          description: 방법론
        registryId:
          type: string
          description: 등록 ID
        registryUrl:
          type: string
          description: 인증기관 레지스트리 URL
        vintage:
          type: integer
          description: 빈티지
          format: int32
    ProjectEffect:
      title: ProjectEffect
      type: object
      properties:
        effectCode:
          type: string
          description: 프로젝트 효과 코드
          enum:
          - AFFORDABLE_AND_CLEAN_ENERGY
          - CLEAN_WATER_AND_SANITATION
          - CLIMATE_ACTION
          - DECENT_WORK_AND_ECONOMIC_GROWTH
          - GENDER_EQUALITY
          - GOOD_HEALTH_AND_WELLBEING
          - INDUSTRY_INNOVATION_AND_INFRASTRUCTURE
          - LIFE_BELLOW_WATER
          - LIFE_ON_LAND
          - NO_POVERTY
          - PARTNERSHIPS_FOR_THE_GOALS
          - PEACE_JUSTICE_AND_STRONG_INSTITUTIONS
          - QUALITY_EDUCATION
          - REDUCED_INEQUALITIES
          - RESPONSIBLE_CONSUMPTION_AND_PRODUCTION
          - SUSTAINABLE_CITIES_AND_COMMUNITIES
          - ZERO_HUNGER
        effectDescriptionEn:
          type: string
          description: 프로젝트 효과 설명 (영어)
        effectDescriptionKr:
          type: string
          description: 프로젝트 효과 설명 (한국어)
        effectImageUrl:
          type: string
          description: 프로젝트 효과 이미지 URL
  securitySchemes:
    Bearer 토큰 값:
      type: http
      scheme: bearer
      bearerFormat: JWT