Мне нужна помощь в преобразовании этой команды REST API Curl в запросы Python - PullRequest
0 голосов
/ 10 декабря 2018

Я новичок здесь, и, честно говоря, новичок во всем, что кодирует.

Я пытаюсь создать скрипт Pyton для поиска элементов в базе данных ресурсов Request Tracker с использованием REST API.

Пока я получил команду Curl:

curl    -X POST \
-H "Content-Type: application/json" \
-d '[{ "field" : "Owner", "operator" : "LIKE", "value" : "NAME" },{"field":"Catalog", "value":"1"}]' \
-H 'Authorization: token MY_TOKEN' \
'https://RT_URL/rt/REST/2.0/assets'

Возвращает хороший JSON с результатами RT_URL, где Owner сопоставляет NAME с использованием токена MY_TOKEN.

Но яне знаю, как кодировать это в Python.У меня есть скрипт, который использует библиотеку запросов для получения, использует простой URL-запрос, но я не могу понять, как реализовать поля поиска.

Я просмотрел все, чтобы найти образец, ноЯ не могу заставить его работать.Я не нашел никакой информации о том, как проходить аутентификацию в запросах с использованием токена.

В любом случае, заранее спасибо за любые ответы:)

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018

Попробуйте этот код

import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'token TOKEN',
}

data = '[{ "field" : "value"}] ......'

response = requests.post('YOUR_URL', headers=headers, data=data)
0 голосов
/ 10 декабря 2018

Сначала давайте создадим dict заголовков для вашего запроса:

headers = {
    'Content-Type': 'application/json', (...)
}

, затем давайте создадим ваше тело:

json = [{
        "field": "Owner",
        "operator": "LIKE",
        "value": "NAME"
    }, {
        "field": "Catalog",
        "value": "1"
    }]

Наконец, давайте отправим ваш запрос:

response = requests.post('https://RT_URL/rt/REST/2.0/assets', json=json, headers=headers)

Это должно помочь.

Вы можете найти больше информации здесь

0 голосов
/ 10 декабря 2018

Попробуйте использовать requests.post() для выполнения HTTP-запроса POST к вашему REST API:

import requests
import json

# URL
url = 'https://RT_URL/rt/REST/2.0/assets'

# JSON data 
data = '[{ "field" : "Owner", "operator" : "LIKE", "value" : "NAME" },{"field":"Catalog", "value":"1"}]'

# Request headers
headers = {"Content-Type": "application/json", "Authorization": "token MY_TOKEN"}

# POST request
requests.post(url=url, data=data, headers=headers)
...