[AI.CHOA] 인생고민, 무엇이든 물어 보세요!

[AI.CHOA] 인생고민, 무엇이든 물어 보세요! · GPT-Aktionen

CHOA Contents API

만세력, 사주, 주역 정보를 제공하는 Restful API 서버입니다.

  • GET /api/manse/calendarGet Manse Info

    주어진 날짜에 대한 만세력 정보를 반환합니다. Args: calendar_type (str): 달력 유형 ("solar" 또는 "lunar") year (int): 년도 month (int): 월 day (int): 일 session (AsyncSession): 데이터베이스 세션 Returns: ManseCalendarResponse: 만세력 정보 Raises: HTTPException: 잘못된 달력 유형이나 해당 날짜의 정보를 찾을 수 없는 경우 에러를 발생시킵니다.

  • GET /api/saju/iljuGet Saju Ilju Info

    주어진 한글 일간지에 대한 사주 정보를 반환합니다. Args: ilju_name (str): 한글로 된 일간지 이름 session (AsyncSession): 데이터베이스 세션 Returns: SajuIlju: 사주 일주 정보 Raises: HTTPException: 해당 일주 정보를 찾을 수 없는 경우 404 에러를 발생시킵니다.

  • GET /api/iching/askGet Hexagram Interpretation

    주역 점괘를 생성하고 해석합니다. 이 엔드포인트는 다음 단계를 수행합니다: 1. 새로운 괘를 생성합니다. 2. 생성된 괘를 해석합니다. 3. 해석 결과를 반환합니다. Returns: IchingResponse: 해석된 점괘 정보 Raises: HTTPException: 점괘를 찾을 수 없는 경우 404 에러를 발생시킵니다.

  • GET /api/healthHealth Check

    상태 확인 엔드포인트

  • GET /Root

    루트 경로 핸들러

Ursprüngliches API-Schema
{
  "openapi": "3.1.0",
  "info": {
    "title": "CHOA Contents API",
    "description": "만세력, 사주, 주역 정보를 제공하는 Restful API 서버입니다.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://choa.modusaju.com",
      "description": "Choa Production server"
    }
  ],
  "paths": {
    "/api/manse/calendar": {
      "get": {
        "tags": [
          "만세력"
        ],
        "summary": "Get Manse Info",
        "description": "주어진 날짜에 대한 만세력 정보를 반환합니다.\n\nArgs:\n    calendar_type (str): 달력 유형 (\"solar\" 또는 \"lunar\")\n    year (int): 년도\n    month (int): 월\n    day (int): 일\n    session (AsyncSession): 데이터베이스 세션\n\nReturns:\n    ManseCalendarResponse: 만세력 정보\n\nRaises:\n    HTTPException: 잘못된 달력 유형이나 해당 날짜의 정보를 찾을 수 없는 경우 에러를 발생시킵니다.",
        "operationId": "get_manse_calendar",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "calendar_type",
            "in": "query",
            "required": true,
            "schema": {
              "enum": [
                "solar",
                "lunar"
              ],
              "type": "string",
              "description": "달력 유형: 'solar' 또는 'lunar'",
              "title": "Calendar Type"
            },
            "description": "달력 유형: 'solar' 또는 'lunar'"
          },
          {
            "name": "year",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "년도",
              "title": "Year"
            },
            "description": "년도"
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "월",
              "title": "Month"
            },
            "description": "월"
          },
          {
            "name": "day",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "일",
              "title": "Day"
            },
            "description": "일"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManseCalendarResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/saju/ilju": {
      "get": {
        "tags": [
          "사주"
        ],
        "summary": "Get Saju Ilju Info",
        "description": "주어진 한글 일간지에 대한 사주 정보를 반환합니다.\n\nArgs:\n    ilju_name (str): 한글로 된 일간지 이름\n    session (AsyncSession): 데이터베이스 세션\n\nReturns:\n    SajuIlju: 사주 일주 정보\n\nRaises:\n    HTTPException: 해당 일주 정보를 찾을 수 없는 경우 404 에러를 발생시킵니다.",
        "operationId": "get_saju_ilju",
        "security": [
          {
            "APIKeyHeader": []
          }
        ],
        "parameters": [
          {
            "name": "ilju_name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Ilju Name"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SajuIlju"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/iching/ask": {
      "get": {
        "tags": [
          "주역"
        ],
        "summary": "Get Hexagram Interpretation",
        "description": "주역 점괘를 생성하고 해석합니다.\n\n이 엔드포인트는 다음 단계를 수행합니다:\n1. 새로운 괘를 생성합니다.\n2. 생성된 괘를 해석합니다.\n3. 해석 결과를 반환합니다.\n\nReturns:\n    IchingResponse: 해석된 점괘 정보\n\nRaises:\n    HTTPException: 점괘를 찾을 수 없는 경우 404 에러를 발생시킵니다.",
        "operationId": "get_hexagram_interpretation",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IchingResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "APIKeyHeader": []
          }
        ]
      }
    },
    "/api/health": {
      "get": {
        "summary": "Health Check",
        "description": "상태 확인 엔드포인트",
        "operationId": "health_check_api_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/": {
      "get": {
        "summary": "Root",
        "description": "루트 경로 핸들러",
        "operationId": "root__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HexagramInfo": {
        "properties": {
          "no": {
            "type": "integer",
            "title": "No"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "chinese": {
            "type": "string",
            "title": "Chinese"
          },
          "english": {
            "type": "string",
            "title": "English"
          },
          "hexagram_image": {
            "type": "string",
            "title": "Hexagram Image"
          },
          "binary": {
            "type": "string",
            "title": "Binary"
          },
          "lucky_type": {
            "type": "string",
            "title": "Lucky Type"
          },
          "divination": {
            "type": "string",
            "title": "Divination"
          }
        },
        "type": "object",
        "required": [
          "no",
          "name",
          "chinese",
          "english",
          "hexagram_image",
          "binary",
          "lucky_type",
          "divination"
        ],
        "title": "HexagramInfo"
      },
      "IchingResponse": {
        "properties": {
          "hexagram": {
            "$ref": "#/components/schemas/HexagramInfo"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/LineInfo"
            },
            "type": "array",
            "title": "Lines"
          },
          "transformed_hexagram": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HexagramInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "transform_lines": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/LineInfo"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transform Lines"
          }
        },
        "type": "object",
        "required": [
          "hexagram",
          "lines"
        ],
        "title": "IchingResponse",
        "description": "주역 점괘 해석 결과를 표현하는 모델입니다."
      },
      "LineInfo": {
        "properties": {
          "line_no": {
            "type": "integer",
            "title": "Line No"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "divination": {
            "type": "string",
            "title": "Divination"
          }
        },
        "type": "object",
        "required": [
          "line_no",
          "type",
          "divination"
        ],
        "title": "LineInfo"
      },
      "ManseCalendarResponse": {
        "properties": {
          "solar_year": {
            "type": "integer",
            "title": "Solar Year"
          },
          "solar_month": {
            "type": "integer",
            "title": "Solar Month"
          },
          "solar_day": {
            "type": "integer",
            "title": "Solar Day"
          },
          "lunar_year": {
            "type": "integer",
            "title": "Lunar Year"
          },
          "lunar_month": {
            "type": "integer",
            "title": "Lunar Month"
          },
          "lunar_day": {
            "type": "integer",
            "title": "Lunar Day"
          },
          "hanja_year_ganji": {
            "type": "string",
            "title": "Hanja Year Ganji"
          },
          "hangul_year_ganji": {
            "type": "string",
            "title": "Hangul Year Ganji"
          },
          "hanja_month_ganji": {
            "type": "string",
            "title": "Hanja Month Ganji"
          },
          "hangul_month_ganji": {
            "type": "string",
            "title": "Hangul Month Ganji"
          },
          "hanja_day_ganji": {
            "type": "string",
            "title": "Hanja Day Ganji"
          },
          "hangul_day_ganji": {
            "type": "string",
            "title": "Hangul Day Ganji"
          },
          "hanja_weekday": {
            "type": "string",
            "title": "Hanja Weekday"
          },
          "hangul_weekday": {
            "type": "string",
            "title": "Hangul Weekday"
          }
        },
        "type": "object",
        "required": [
          "solar_year",
          "solar_month",
          "solar_day",
          "lunar_year",
          "lunar_month",
          "lunar_day",
          "hanja_year_ganji",
          "hangul_year_ganji",
          "hanja_month_ganji",
          "hangul_month_ganji",
          "hanja_day_ganji",
          "hangul_day_ganji",
          "hanja_weekday",
          "hangul_weekday"
        ],
        "title": "ManseCalendarResponse",
        "description": "만세력 정보 응답을 위한 모델입니다."
      },
      "SajuIlju": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "고유 식별자"
          },
          "ilju_hangul": {
            "type": "string",
            "maxLength": 10,
            "title": "Ilju Hangul",
            "description": "일주(한글)"
          },
          "ilju_hanja": {
            "type": "string",
            "maxLength": 10,
            "title": "Ilju Hanja",
            "description": "일주(한자)"
          },
          "personality_analysis": {
            "type": "string",
            "title": "Personality Analysis",
            "description": "성격 분석"
          },
          "career_and_job_choice": {
            "type": "string",
            "title": "Career And Job Choice",
            "description": "진로 및 직업선택"
          },
          "interpersonal_relationships": {
            "type": "string",
            "title": "Interpersonal Relationships",
            "description": "대인 관계"
          },
          "health_management": {
            "type": "string",
            "title": "Health Management",
            "description": "건강 관리"
          },
          "wealth_and_financial_strategy": {
            "type": "string",
            "title": "Wealth And Financial Strategy",
            "description": "재물운과 재테크"
          },
          "education_and_self_improvement": {
            "type": "string",
            "title": "Education And Self Improvement",
            "description": "학업 및 자기계발"
          },
          "periodic_fortune_analysis": {
            "type": "string",
            "title": "Periodic Fortune Analysis",
            "description": "시기별 운세분석"
          },
          "family_relationships": {
            "type": "string",
            "title": "Family Relationships",
            "description": "가족관계"
          },
          "startup_and_business_operation": {
            "type": "string",
            "title": "Startup And Business Operation",
            "description": "창업 및 사업운영"
          },
          "mental_spiritual_growth": {
            "type": "string",
            "title": "Mental Spiritual Growth",
            "description": "정신적 영적성장"
          }
        },
        "type": "object",
        "required": [
          "ilju_hangul",
          "ilju_hanja",
          "personality_analysis",
          "career_and_job_choice",
          "interpersonal_relationships",
          "health_management",
          "wealth_and_financial_strategy",
          "education_and_self_improvement",
          "periodic_fortune_analysis",
          "family_relationships",
          "startup_and_business_operation",
          "mental_spiritual_growth"
        ],
        "title": "SajuIlju",
        "description": "사주 일주 정보를 저장하는 모델입니다."
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      }
    },
    "securitySchemes": {
      "APIKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      }
    }
  }
}