레알윙 2021. 1. 24. 17:23
반응형

공부중인 GIT 주소

 

위 GIT주소에 개발 step 별로 commit 해두었다.

 

 

진행되는 과정은 아래와 같다.

 

1. 입력값들을 전달하면 JSON 응답으로 201이 나오는지 확인.

  • Location 헤더에 생성된 이벤트를 조회할 수 있는 URI 담겨 있는지 확인. 
  • id는 자동생성된 값으로 나오는지 확인

2. 입력값으로 누가 id나 eventStatus, offline, free 이런 데이터까지 같이 주면?

  • Bad_Request로 응답 vs 받기로 한 값 이외는 무시

3. 입력 데이터가 이상한 경우 Bad_Request로 응답

  • 입력값이 이상한 경우 에러
  • 비즈니스 로직으로 검사할 수 있는 에러
  • 에러 응답 메시지에 에러에 대한 정보가 있어야 한다.

4. 비즈니스 로직 적용 됐는지 응답 메시지 확인

  • offline과 free 값 확인

5. 응답에 HATEOA와 profile 관련 링크가 있는지 확인.

  • self (view)
  • update (만든 사람은 수정할 수 있으니까)
  • events (목록으로 가는 링크)

6. API 문서 만들기

  • 요청 문서화
  • 응답 문서화
  • 링크 문서화
  • profile 링크 추가

 

6. API 문서 만들기

6-1. 스프링 REST Docs: 링크, (Req, Res) 필드와 헤더 문서화

요청 필드 문서화

  • requestFields() + fieldWithPath()
  • responseFields() + fieldWithPath()
  • requestHeaders() + headerWithName()
  • responseHedaers() + headerWithName()
  • links() + linkWithRel()

 

Relaxed 접두어

  • 장점: 문서 일부분만 테스트 할 수 있다.
  • 단점: 정확한 문서를 생성하지 못한다

 

 

6-2. 스프링 REST Docs: 문서 빌드

스프링 REST Docs

<plugin>
	<artifactId>maven-resources-plugin</artifactId>
	<version>2.7</version>
	<executions>
		<execution>
			<id>copy-resources</id>
			<phase>prepare-package</phase>
			<goals>
				<goal>copy-resources</goal>
			</goals>
			<configuration>
				<outputDirectory>
					${project.build.outputDirectory}/static/docs
				</outputDirectory>
				<resources>
					<resource>
						<directory>
							${project.build.directory}/generated-docs
						</directory>
					</resource>
				</resources>
			</configuration>
		</execution>
	</executions>
</plugin>

 

템플릿 파일 추가

  • src/main/asciidoc/index.adoc

 

문서 생성하기

  • mvn package
    • test
    • prepare-package :: process-asciidoc
    • prepare-package :: copy-resources

package 더블 클릭

문서 확인

  • /docs/index.html

 

서버 실행 시킨 후 접속 경로

 

 

 

테스트

API 문서 만들기

  • 요청 본문 문서화
  • 응답 본문 문서화
  • 링크 문서화
    • self
    • query-events
    • update-event
    • profile 링크 추가
  • 요청 헤더 문서화
  • 요청 필드 문서화
  • 응답 헤더 문서화
  • 응답 필드 문서화

 

 

 

 

반응형