генерировать строковый ответ из метода API конечных точек (Java)

1

Я разрабатываю API конечных точек google, поскольку у меня есть только ответ класса POJO от метода API. Как я могу получить String или Integer, Float, логический ответ из метода API конечной точки google?

Теги:
google-app-engine
google-cloud-sql

2 ответа

0

Лучший подход - создать простые классы контейнеров с неизменяемыми значениями (слишком плохо, что у нас нет поддержки scala, вы можете просто использовать классы case: P), например

public final class StringHolder {
    private final String s;
    StringHolder(final String s) {
        this.s = Preconditions.checkNotNull(s, "null string input");
    }
    public String get() { return s; }

    @Override
    public String toString() {
        return "StringHolder{" + "s='" + s + '\'' + '}';
    }

    // hashCode and equals are optional
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        final StringHolder that = (StringHolder) o;
        return s.equals(that.s);
    }
    @Override
    public int hashCode() {
        return s.hashCode();
    }
}

Нулевая проверка является необязательной, вы можете разрешить null, но в этом случае вы даже можете ввести фабричный метод и всегда возвращать тот же экземпляр NullStringHolder в случае пустых входов, который является более компактным, поскольку на самом деле не нужно хранить данные, просто хардкор, чтобы вернуть null в get(). Было бы только иметь значение, если бы вы ожидали тонны нулей в качестве действительного ответа (что, вероятно, вызывает сомнения).

Надеюсь это поможет!

0

В методах Endpoint тип возвращаемого значения не может быть простым типом, например String или int. Возвращаемое значение должно быть POJO, массивом или коллекцией.

Если вы хотите какой-то обходной путь для String, посмотрите на этот поток: Почему не поддерживают Google Cloud Endpoints простые типы возврата объектов?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню