Open API는 단어 그대로 "개발된 API"이다. 즉, 누구나 사용될 수 있도록 API의 endpoint가 개방되어있다면 Open API 인것이다.
예를 들어, 기상청의 단기예보 조회API, 우체국의 우편번호 API 등이 있다.
Public API라고도 불린다.
OpenAPI는 의미가 완전 다르다.
OpenAPI 또는 OpenAPI Specification(OAS) 라고 부르는데, 이는 RESTful API를 기 정의된 규칙에 맞게 API Spec을 json이나 yaml로 표현하는 방식을 의미한다.
직접 소스코드나 문서를 보지 않고 서비스를 이해할 수 있다는 장점이 있다.
정리하면, RESTful API 디자인에 대한 정의 표준이라고 생각하면 된다.
예전에는 Swagger 2.0와 같은 이름으로 불렸다가 현재는 3.0버전으로 올라오면서 OpenAPI 3.0 Specification으로 칭한다.
예전에는 OpenAPI 2.0을 Swagger 2.0으로 불렀었다.
그래서 이 둘도 정확한 정의가 필요하다.
Swagger는 2010년대 초 Tam Wordnik이라는 사람이 개발하기 시작했다.
처음에는 모든걸 포함하는 방법론이 아니라, Wordnik(회사) 자체 API용 UI로 개발되었고, 2015년초에 SmartBear라는 회사에서 Swagger를 인수했다.
그리고 2015년 말, SmartBear는 Linux Foundation의 후원으로 OpenAPI Initiative에 Swagger를 기부하면서 OpenAPI Specification으로 이름이 변경되었다.
하지만 현재도 여전히 Swagger는 사용되는 용어이다. 지금은 어떤의미로 사용될까?
즉, Swagger는 API들이 갖고 있는 specification을 정의할 수 있는 툴들 중 하나라고 보면 된다.
이런식으로, OpenAPI Specificaiton을 json 또는 yaml로 기술한 문서를 swagger-ui를 통해 띄우게 되면 브라우저에서 편리하게 API문서를 볼 수 있다.
Open API : 공개된 API
OpenAPI Specification : RESTful API 디자인에 대한 정의(Specification) 표준
Swagger : OpenAPI를 Implement하기 위한 도구