2015-12-30 2 views
0

У меня этот простой сервис, который перекликается параметр ID обернутый в объект JSON:Как сделать Enunciate показать мой тип данных как структурированный JSON (а не как «custom»)?

@Path("job") 
public class JobResource { 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    @Path("{id}") 
    public Job readById(@PathParam("id") long id) { 
     Job j = new Job(); 
     j.id = id; 
     return j; 
    } 

} 

Job класс Возвращаемое значение объявляется как:

public class Job { 
    public long id; 
} 

документация генерируется с излагают показывает данные сервиса введите «custom». Возможно ли, чтобы Enunciate выложил более подробное объяснение типа возврата, например, представление JSON?

ответ

0

Если вы измените тип возврата на javax.ws.rs.core.Response, документация должна показать тип данных как JSON.

Вы должны были бы немного изменить свой метод, как:

... 
return Response.status(Status.OK).entity(j).build(); 
0

Добавить аннотацию к классу Работа

@javax.xml.bind.annotation.XmlRootElement 

Без аннотации излагают будет отображаться DTO как «обычай» или «файл "

0

У меня точно такая же проблема с простым веб-сервисом REST Jersey.

Вот аннотациями Моего возвращенного объекта (не более):

 

    @XmlRootElement(name = "OReponseInitialiser") 
    @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER) 
    @XmlType (name="OReponseInitialiser") 
    public class OReponseInitialiser 

И декларация WebService:

 

     @POST 
     @Consumes(MediaType.APPLICATION_JSON) 
     @Produces(MediaType.APPLICATION_JSON) 
     @Path ("initialiser") 
     public OReponseInitialiser initialiser(@Context HttpServletRequest pRequete, ...) throws OException 

Я строй документации с муравьиной задачей

<enunciate 
    basedir="${projet.repertoire}/src" 
    buildDir="${enunciate.working.dir}" 
    javacSourceVersion="1.8" 
    javacTargetVersion="1.8" 
    configFile="${projet.repertoire}/build_enunciate.xml" 
    > 
    <include name="**/*.java"/> 
    <classpath refid="compile.classpath"/> 
    <export artifactId="docs" destination="${docs.dir}"/> 
</enunciate>