개발

코드 작성 없이 PRISM 으로 REST API Mock Server 구성 하기

쩌비군 2021. 7. 18. 00:32
728x90

Swagger 를 이용하여 Rest API Spec 을 정리하고 있는데 Rest API MOCK Server 가 필요하다면 별도의 코드 작성 없이 PRISM 으로 Rest API Mock Server 를 구성 할 수 있습니다.

 

이렇게 Rest API Mock Server 를 구성 하는 이유는 시스템 연계를 위해 개발한 Rest API 들을 개발 시점에 바로 호출 하여 사용하는 경우가 드물기 때문입니다.

 

 

다행이도 최든에는 Swagger 를 이용하여 Rest Api 스펙을 정리하여 공유하기 때문에 이를 이용하여 각 시스템별로 필요한 Mock 서버를 구축 하는 경우가 많습니다. 바로 아래처럼 Node Express 이용해서 말이죠...

 

router.get('/something', function(req, res, next) {
  // Some stuff here
  if(err) {
      res.status(500);
      return next(err);
  }
      // More stuff here
});

 

하지만, Swagger 로 Rest API Spec 을 정리 하고 있다면, PRISM 을 이용하여 바로 Rest API Mock 서버를 구성 할 수 있습니다!!

 

Prism | Open-Source HTTP Mock and Proxy Server

https://stoplight.io/open-source/prism/

 

PRISM 은 Rest API  동작을 Mocking 해주는 오픈 소스 HTTP Mock Server 로 OpenAPI v2/v3 (Swagger 지원) 문법을 지원 하는 등 아래와 같은 기능을 갖습니다.

  • Generate dynamic Response 값 생성
  • Input and Output Validation
  • Mocking Callbacks
  • Validation Proxy

Generate dynamic Response 값 생성

 

 

 

Input and Output Validation

 

 

이런 PRISM 을 사용하는 방법은 아주 아주 간단합니다.

1. npm 으로 PRISM 을 설치합니다.

 

$ npm install -g @stoplight/prism-cli

2. PRISM 으로 Mock 서버 시작

 

$ wget https://raw.githubusercontent.com/jjeaby/jscript/master/swagger-doc.json$ prism mock --host 0.0.0.0 -p 15002[=PORT] -d swagger-doc.json[=Swagger JSON Doc or Swagger YAML File]

 

명령어를 실행하면 Swagger JSON or Swagger YAML 의 Spec 으로 Rest API MOCK Server 가 실행 됩니다.

 

사용은 정해진 Swagger 의 Rest API Spec 대로 Rest API 를 호출 하면 됩니다. Response 의 값이 Spec 에 정의된 형식에 따라 Dynamic 하게 자동으로 생성 되므로 Response 의 값을 일일이 설정 할 필요가 없습니다.

 

만약, Swagger Doc Spec 과 다른 값으로 Rest API 를 호출 한다면 Log 에 VALIDATOR 가 동작하여 발생한 오류도 보여 줍니다.

 

혹시, Swagger 를 이용하여 Rest API Spec 을 정리하고 있는데 Rest API MOCK Server 가 필요하다면 PRISM 을 써보는건 어떨까요?

 

그럼 즐거운 개발 세발~~~:)