Как модернизировать - PullRequest
0 голосов
/ 03 ноября 2019

Я новичок в NodeJS и Retrofit и не могу заставить работать POST / PUT / DELTE.

Например, моя конечная точка:

routes.post('/createGame', async (req, res) => {
  const game = await models.game.model.create({
    name: req.body.name,
    description: req.body.description,
    rules: req.body.rules,
    requirements: req.body.requirements,
    type: req.body.type
  });
  res.send(game);
});

Что касается моего запроса на модернизацию, я попытался с FormUrlEncoded:

    @POST("createGame")
    @FormUrlEncoded
    fun createGame(
        @Field("name") name: String,
        @Field("description") description: String,
        @Field("rules") rules: String,
        @Field("requirements") requirements: String,
        @Field("type") type: GameType
    ): Deferred<Game>

Я сделал это без использования каких-либо тегов, и я попытался с @Body для каждого параметра, но это не так, как телоработает (я не хочу передавать его как объект)

Как я могу это исправить?

1 Ответ

1 голос
/ 03 ноября 2019

По существу, аннотация @Field имеет поле опции для кодирования:

закодировано: может быть истинным или ложным;default is false Кодированная опция определяет, является ли предоставленная пара ключ-значение уже URL-кодированной. Чтобы указать значение закодированного параметра, необходимо передать его в аннотации @Field. Приведенный ниже пример иллюстрирует примеры кода и устанавливает для закодированной опции значение true.

@Field(value = "title", encoded = true) String title

Более подробную информацию о работе с Retrofit можно найти здесь .

...