Enunciate를 사용하여 내 REST API의 설명서를 자동으로 생성하고 싶습니다.Java 인터페이스를 데이터 형식으로 사용할 수 있습니까?
JAX-RS 주석이 코드는 이런 식입니다 :
@POST
@Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
public IAuthentication login(CLogin aLogin) throws XException {
return this.pManager.authenticate(aLogin);
}
IAuthentication
는 인터페이스이며, 그것은 하나 남아있다. 이는 주사를 사용하고 authenticate()
메서드에서 반환 한 정확한 유형을 예측할 수 없기 때문입니다. CLogin
그러나 클래스입니다 만, authenticate()
가 받아들이는 타입의 전문이기 때문에 괜찮습니다.
지금 내 문제는 요청 본문 만 응답 본문에있는 문서이며 응답 본문에는 없다는 것입니다. 담아서는 다음과 같은 메시지와 함께, 잠재적 인 데이터 유형을 찾을 때 Java 인터페이스를 무시하는 것 같다
[DEBUG]이 클래스 또는 열거 아니기 때문에 [담아서] com.example.IAuthentication 잠재적 인 잭슨 타입이다 .
내 인터페이스에는 JAXB 주석이 주석으로 지정됩니다. 소스 경로에서 액세스 할 수 있습니다.
@XmlRootElement
public interface IAuthentication {
/* methods signatures */
}
Java 인터페이스가 데이터 유형으로 OK이며이를 고려해야한다는 것을 알리는 방법이 있습니까?
부록
이 방법의 JSON 출력의 실제 예 : this issue에 @stoicflame 응답으로 당
{
"token": "imec51lpb72lgsdrb0ftvfomt3",
"auth_key": ""
}
인터페이스를 구현하는 클래스에 Jaxb 주석을 사용하여 주석을 달 수 있습니까? – karelss
나는했다. '@XmlRootElement 공용 클래스 CAuthentication IAuthentication implements' 클래스가 이미 있습니다. 데이터 유형 목록에 표시됩니다. 그러나 POST 메서드의 응답 본문은 아직 문서화되어 있지 않습니다. –
jaxb의 어떤 구현을 사용하고 있습니까, 아마도 Jackson입니까? – karelss