IT 지식

Open API와 OpenAPI의 개념과 차이

JasonM 2023. 5. 27. 22:47
반응형

API 뭐 별거 있어? API 스펙 받아서 endpoint에 요청 날리고 응답받게 구현하면 되는 거지라고 생각했었는데, 토이 세션 준비를 위해 API에 대해 알아보다 보니 다양한 용어와 개념들을 명확히 설명하는 것이 쉽지만은 않았다. 그래서 Open API와 OpenAPI의 개념과 Swagger 등에 대한 개념과 특징 및 차이점 등을 정리해 보았다.

 

결론부터 말하면 OpenAPI는 Open API와는 완전히 다른 개념이다.

 

Open API (with space) 

Open API란 서비스의 개념으로, 누구나 접근 가능한 공개된 자료를 API 를 통해 제공받을 수 있는 서비스라고 볼 수 있다. 쉬운 예로는 기상청에서 제공하는 일기예보 API, 행안부의 주소검색 API 등이 있으며, 국내에서는 공공 API(Public API) 또는 오픈 API라고 부르기도 한다.
 
특정 집단(Closed User Group) 내에서 사용하는 Open API도 있다.
예를 들면 금융권에서 사용하는 오픈 뱅킹도 금융결제원 주도 아래 Open API 서비스를 통해서 각 금융사 간에 Resource에 대한 Access를 가능하게 한다. 이러한 오픈 뱅킹은 Fintech이나 금융기관에 한해 사용이 가능하다. 또 다른 예로는 업비트 API도 비슷하다고 볼 수 있다. 시세 조회와 같이 누구나 접근 가능한 Open API도 있지만 업비트 회원일 경우 주문, 자산조회 등의 업무도 API를 통해 처리할 수 있게 해 준다.


 

OpenAPI (without space)

그렇다면 OpenAPI란 무엇인가?

OpenAPI는 공공기관이든 금융기관이든 IT기업이든 누군가가 제공하는 서비스가 아니라 API를 정의하는 표준 포멧이다. 정식명칭은 OpenAPI Specification이며, 줄여서 OAS라고 부른다.
 
따라서 오픈 API를 제공하는 어떤 금융기관에서 OpenAPI(OAS)를 이용해서 오픈 API 서비스를 개발할 수도 있는 것이다.
 
여기서 한 단계 더 들어갈 수도 있다.
OpenAPI를 통해 API 서비스를 구축할 때 RESTful 하게 구축했다면, OpenAPI 스펙으로 REST API 디자인을 적용한 Open API 서비스를 업비트가 제공하고 있다고 말할 수도 있는 것이다.

혹시 모르시는 분들을 위하 REST API에 대해 한 줄로 설명한다면, REST API는 API 서비스를 개발하기 위한 디자인적 방법론이다.

REST API에 대한 자세한 내용은 여기를 참조:

 

REST API의 개념과 동작 방식

우리는 휴대폰에서 좋아하는 소셜 미디어 앱을 열고, 태블릿에서 최신 뉴스를 읽고, 컴퓨터에서 여행 상품을 검색하거나, 스트리밍 서비스를 통해 좋아하는 프로그램을 시청합니다. 기술적인

jsonm.tistory.com




따라서, Open(오픈) API, REST API, OpenAPI(OAS)는 모두 다 다른 개념이며, 셋을 모두 다 사용해서 서비스를 제공할 수도 있다.

실제로 우리 회사의 API 서비스는 누구나 사용할 수 있는 형태의 오픈 API는 아니지만 특정 집단에게 오픈된 API서비스로 세 가지 모두에 해당된다고 대놓고 설명하고 있다.

 

 

 

반응형

 

OpenAPI(OAS) 와 Swagger

OpenAPI(OAS) and Swagger?

또 다른 질문으로는 OpenAPI와 Swagger의 차이점이다. 이 둘도 섞여서 사용되는 경우가 종종 있다. API 관련 회의에서 누구는 OAS라 부르고 누구는 아무도 모르는데 혼자 자꾸 Swagger를 들먹이며 있는 척하는 사람도 있다. (사실 내 전 Boss다)

그렇다면 Swagger란 무엇이고 OpenAPI와 무슨 관계일까?


Open API의 짧지만은 않은 역사에 대해 잠깐 보면, 2011년 Wordnik 라는 제품의 공동 창업자인 Tony Tam가 Wordlink 제품 개발에 필요한 API 문서의 자동화를 위해 Swagger API project 가 처음 개발 되었다고 한다. 이후 여러 사람들에 의해 고도화돼서  OpenAPI 2.0을 Swagger 2.0이라고 불렀고, Swagger는 SMARTBEAR라는 회사에서 개발되었다. 2015년 11월, SMARTBEAR는 OpenAPI Initiative 재단에 Swagger를 기부하였고, Swagger 버전 3.0부터 이름을 OpenAPI Specfication (OAS)으로 부르게 되었다. 

 
따라서, Swagger는 OpenAPI의 옛날 이름이고, 현재는 다른 의미로 사용된다. 
 

What happened to Swagger now?

그렇다면 현재 Swagger 어떻게 되었나?

현재 Swagger는 OpenAPI를 칭하는 것이 아니라 OAS를 개발할 수 있는 툴이라고 생각하면 된다. 그리고 이 툴은 여전히 SMARTBEAR의 툴이다. 아래와 같이 Swagger는 API 개발에 활용할 수 있는 다양한 툴을 제공하고 있으며, 특히 Google apigee 나 AWS 같은 곳에서도 사용 중인 Swagger Hub라는 플랫폼을 제공하고 있다.
 

  • Swagger Editor: Browser based editor. Help to build OpenAPI Spec easier.
  • Swagger UI: OpenAPI spec review on browser as well as API Testing
  • Swagger Codegen: Server or Client stub code generation based on OAS.

 
Swagger 웹사이트:

 

API Documentation & Design Tools for Teams | Swagger

Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better products, faster.

swagger.io

 

 

반응형