Запрос PATCH в Java Spring API - PullRequest
       51

Запрос PATCH в Java Spring API

0 голосов
/ 13 февраля 2020

Я хотел бы сделать запрос PATCH в OpenShift API. Чтобы упростить задачу, мы считаем, что мы видим это в OpenShift API:

Содержание может быть таким:

{ 
  "limits":{ 
    "cpu":"10m"
  },
  "requests":{ 
    "memory":"1G"
  }
}

Или это:

{ 
  "limits":{ 
    "cpu":"30m",
    "memory":"2G"
  },
  "requests":{ 
    "memory":"5G"
  }
}

Или ..., вы понимаете, что я имею в виду;) Ключи от Json могут быть или не быть.

Итак, теперь я хотел бы знать, как сделать патч, не зная, что было в прошлое, потому что код будет только получать новые значения, пустые или нет.

Я надеюсь, что будет ясно :) Я использую JDK 13 и Spring с Maven

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Наиболее подходящим решением кажется отправка запросов в виде json -patch запросов. Форматирование документов: http://jsonpatch.com/

В моем примере я обновляю свойство «image» моего DeploymentConfig, но это должно работать для других типов объектов. Обратите внимание, что вы можете сделать более одной команды исправления на запрос, и каждая команда исправления должна знать только о свойствах, составляющих путь, который вы изменяете.

Настройка моего запроса: configs docs

  • Запрос: PATCH /apis/apps.openshift.io/v1/namespaces/$NAMESPACE/deploymentconfigs/$NAME
  • Auth: Носитель $ TOKEN
  • Заголовки:

    • Тип содержимого: application / json -patch + json
    • Принимать: application / json
    • Подключение: закрыть
  • Кузов:

[
    {
        "op": "replace", 
        "path": "/spec/template/spec/containers/0/image", 
        "value": "my-repo-image.url/my-image:v10"
    },
    { "op": "add", ... },
    { "op": "remove", ...},
    ...
]
0 голосов
/ 13 февраля 2020

Ответ: Получить старые данные, сделав метод get для API, который содержит старую дату. И тогда я смогу узнать изменения для исправлений! :)

...