2016-08-11 9 views
0

Я пытался создать REST API для своего бота, используя Spark Framework, который мне лично очень нравится, и я бы не переключался, но когда я пытаюсь опубликовать кодированный GSON POJO, но он помещает вокруг него некоторый HTML, что делает его непревзойденным для других приложений. Вот результат в контрольном элементе: the resultSpark Framework помещает HTML вокруг моего ответа

и то, что я хотел бы отправить, было только частью тега <pre>, как я и ожидал от своего кода.

Просто, чтобы сделать его немного более ясно, что им пытаются сделать, вот мой Спарк маршрут и POJO я превращаю в формате JSON:

get("/json", (req, res) -> { 
    long sinceStart = System.currentTimeMillis() - Launcher.getInstance().getStartTime(); 
    sinceStart /= 1000; 
    long hours = sinceStart/3600; 
    sinceStart %= 3600; 
    long minutes = sinceStart/60; 
    sinceStart %= 60; 
    res.type("application/json"); 
    return new JSONResponse(hours + ":" + minutes + ":" + sinceStart, 
      Launcher.getInstance().getDispatcher().getDispatchCount(), 
      Launcher.getInstance().getDispatcher().getCommands().size(), 
      Launcher.getInstance().getClient().getGuilds().size()); 
}); 
... 
private static class JSONResponse { 

    private String time; 
    private int commands, servers; 
    private long dispatchCount; 

    JSONResponse(String time, long dispatch, int registered, int servers) { 
     this.time = time; 
     this.dispatchCount = dispatch; 
     this.commands = registered; 
     this.servers = servers; 
    } 

    public String getTime() { 
     return time; 
    } 

    public int getCommands() { 
     return commands; 
    } 

    public int getServers() { 
     return servers; 
    } 

    public long getDispatchCount() { 
     return dispatchCount; 
    } 

    @Override 
    public String toString(){ 
     return Launcher.getInstance().getGson().toJson(this); 
    } 
} 
+0

Вместо вашего 'JSONResponse' вы можете попробовать [ResponseTransformer] (http://sparkjava.com/documentation.html#response-transformer) – Cir0X

+0

@ Cir0X В настоящее время я делаю это:' 'get ("/json ", «application/json», (req, res) -> {... same ...}, Launcher.getInstance(). getGson() :: toJson); '' Но он делает то же самое. Спасибо, что пытались мне помочь! – ArsenArsen

+0

Каково это изображение? С каким инструментом вы это взяли? Я не думаю, что spark java завершает ваш вывод в html-элементе. Вы пытались получить доступ к вашему сервису с помощью curl? 'curl http: // localhost: 8080/json' и заменить на правильный хост и порт, на котором работает ваша служба. –

ответ

1

Проверьте выход вашей службы с помощью инструмента, как завиток как так:

curl http://localhost:8080/json 

Спарк Java не обернуть ответ в HTML, так что проверить, где выход вы смотрите и где вы взяли изображение из приходит.