Skip to content

[FEAT] 프로젝트내 사용할 Endpoint 정의 및 네트워크 구조 수정 - #14

Merged
dlrjswns merged 12 commits into
developfrom
feature/endpoint
Aug 9, 2026
Merged

[FEAT] 프로젝트내 사용할 Endpoint 정의 및 네트워크 구조 수정#14
dlrjswns merged 12 commits into
developfrom
feature/endpoint

Conversation

@dlrjswns

@dlrjswns dlrjswns commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Describe

Network Layer의 API 요청 구조를 개선하고 Endpoint 기반으로 요청을 구성할 수 있도록 네트워크 관련 기본 타입 및 요청 파라미터 구조를 정리했습니다.

Query Parameter와 Request Body를 RequestParameter를 통해 관리하도록 변경하여 Endpoint에서 URL에 Query String을 직접 작성하지 않도록 개선했습니다.

Works made

  1. Endpoint 프로토콜 구조 개선
  • API 요청에 필요한 path, method, parameters, header를 Endpoint에서 관리하도록 구성
  • asURLRequest()를 통해 Endpoint 정보를 실제 URLRequest로 변환하도록 구현
  1. RequestParameter 추가
  • Query Parameter와 Request Body를 각각 관리할 수 있도록 구성
  • [RequestParameter] 형태로 관리하여 Query Parameter와 Request Body가 동시에 필요한 API도 지원
  1. HTTPMethod 및 HTTPHeader 분리
  • HTTP Method 및 Header 관련 타입을 별도 파일로 분리하여 역할을 명확하게 구성
  • 기본 Header, Authorization Header, Custom Header를 지원
  1. Query Parameter 처리 방식 개선
  • Endpoint의 path에 ?date=...&name=...과 같이 Query String을 직접 작성하지 않도록 변경
  • URLComponents와 URLQueryItem을 활용하여 Query Parameter를 URL에 구성하도록 구현
  1. Request Body 처리
  • Encodable 타입의 Request Body를 JSONEncoder를 통해 Data로 변환하여 URLRequest에 설정하도록 구현
  • Network 관련 파일 구조 정리

Changes Made

As-Is

기존 로직

  • Endpoint에서 API Path와 Query Parameter를 직접 문자열로 구성
  • Request Body를 Endpoint의 별도 body 프로퍼티로 관리
  • Query Parameter와 Request Body가 함께 필요한 API에 대한 요청 구조가 명확하지 않음
  • 네트워크 요청을 구성하는 타입들이 개별적으로 관리되어 관련 타입 간의 관계를 파악하기 어려움

스크린샷
Image

To-BE

변경 로직

  • Endpoint에서 parameters를 통해 요청에 필요한 Parameter를 관리하도록 변경
  • RequestParameter를 통해 Query Parameter와 Request Body를 구분하여 관리
  • Query Parameter와 Request Body가 동시에 필요한 경우 [RequestParameter]에 각각 추가하여 구성 가능
  • URLComponents와 URLQueryItem을 사용하여 Query Parameter를 안전하게 URL에 추가
  • Encodable 타입의 Request Body를 JSONEncoder를 통해 JSON Data로 변환
  • Endpoint.asURLRequest()에서 Endpoint의 정보를 기반으로 최종 URLRequest를 생성하도록 통합
  • Network 관련 기본 타입을 Core/Network/Types로 분리하여 역할 및 파일 구조를 명확하게 정리

스크린샷
Image

How to Test

만들어져있는 Endpoint를 호출해보고 올바르게 응답값을 받아오는지 확인

Issues Resolved

Additional context

현재 Endpoint별로 정의된 API가 실제 서버의 모든 API 요청 케이스에서 정상적으로 동작하는지까지는 전체적으로 검증하지 않았습니다.

따라서 각 Endpoint를 사용하는 경우 사용하려는 API의 HTTP Method, Path, Query Parameter, Request Body, Header 등의 API 명세를 확인한 후 사용해주시기 바랍니다.

특히 Query Parameter와 Request Body의 구성 방식이 API 명세와 일치하는지 확인이 필요합니다.

References

@dlrjswns
dlrjswns requested a review from cchanmi August 8, 2026 10:16
@dlrjswns dlrjswns self-assigned this Aug 8, 2026
@dlrjswns dlrjswns added the enhancement New feature or request label Aug 8, 2026

@cchanmi cchanmi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다
리뷰 한번 확인해 주시고 제 PR이 올라가면 홈 화면이 생길 건데,
토큰 재발급 + 로그인 후 홈 화면으로 연결되는 플로우도 추가로 작업해 주시면 좋을 것 같습니다

Comment thread GAMSS/Sources/Core/Network/Foundation/HttpHeader.swift
Comment thread GAMSS/Sources/Data/Endpoint/AuthEndpoint.swift Outdated
Comment thread GAMSS/Sources/Core/Network/Foundation/Endpoint.swift
Comment thread GAMSS/Sources/Data/Endpoint/CardEndpoint.swift
Comment thread GAMSS/Sources/Data/DTO/Card/Request/CreateCardRequestDTO.swift
@dlrjswns

dlrjswns commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

고생하셨습니다 리뷰 한번 확인해 주시고 제 PR이 올라가면 홈 화면이 생길 건데, 토큰 재발급 + 로그인 후 홈 화면으로 연결되는 플로우도 추가로 작업해 주시면 좋을 것 같습니다

@cchanmi 해당 플로우는 현재 PR의도랑 달라서 다음 PR에서 따로 작업해서 올리도록 하겠습니다 !!

@dlrjswns
dlrjswns merged commit 3b70609 into develop Aug 9, 2026
1 check passed
@dlrjswns
dlrjswns deleted the feature/endpoint branch August 9, 2026 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants