Swagger(OAS = Open API specification)과 RAML은 REST API 문서화, 즉, RESTful API 개발이라는 공통점을 가지고 있다. 디테일한 설명들은 아래의 영문 링크들을 참고하자.

 

The link 1 : https://www.educba.com/raml-vs-swagger/

 

RAML vs Swagger | Top 25 Differences You Should Know with Infographics

Guide to RAML vs Swagger. Here we discuss the difference between RAML vs Swagger along with key differences, infographics and comparison table.

www.educba.com

 

The link 2 : https://blog.vsoftconsulting.com/blog/is-raml-or-swagger-better-for-building-apis

 

Swagger (OAS) vs. RAML - Which is Better for Building APIs?

Swagger (OAS) and RAML are two of the most popular specifications for developing APIs on the market right now. But which one is better for your business and how...

blog.vsoftconsulting.com

The link 3 : https://dzone.com/articles/rest-api-documentation-part-2-1

 

REST API Documentation Part 2 — Swagger, RAML, and Open API - DZone Integration

 

dzone.com

 

 

 

아래 Pearl이라고 적힌것은 아마 Perl을 잘못적은 것으로 예상된다

 

Swagger는 상향식 사양(Bottom-up)으로 설계되어 있어서 API가 보다 복잡한 연동 시스템을 만드는데 영향을 끼치도록 구성되어있다.

 

반면에 RAML은 하향식 사양(Top-down)으로 설계되어 있어서, 시스템을 분해하고 다양한 하위 구성 요소의 동작을 해석하는데 탁월하다.

 

추가적으로 RAML은 Swagger에 비해 Learning Curve가 가파르고, Swagger에 비해 초보자가 접근하기 쉽지 않다는 단점이 있다.

 


GraphQL 과 REST(Swagger, RAML등)의 차이점은 아래 블로그를 참고하면 쉽게 이해할 수 있다.

 

The link 1 : https://blog.naver.com/syhuh93/222349022564

 

[REST vs. GraphQL for API] -Comparison

GraphQL이 REST에 비해 이점이 많긴하지만 반드시 더 나은 것은 아니다. 본인 애플리케이션의 필요...

blog.naver.com

 

좀더 디테일한 설명은 아래 영문 링크를 참고하자.

 

The link : https://www.apollographql.com/blog/graphql/basics/graphql-vs-rest/

 

GraphQL vs. REST

Often, GraphQL is presented as a revolutionary new way to think about APIs. Instead of working with rigid server-defined endpoints, you can send queries to get exactly the data you’re looking for in one request. And it’s true — GraphQL can be transfo

www.apollographql.com

 

위의 그림에 언급되어있듯이, GraphQL도 근본적으로 RESTful API modeling을 따른다.

디테일한 차이점은 많겠지만, 대략적으로 GraphQL과 REST의 차이점을 둔다면 REST는 백엔드에서 대상을 정의하고 GraphQL은 프론트에서 대상을 정의한다.

 

+ 추후 영문 번역 및 문서 업데이트 예정