Как я могу использовать запросы для приведенных ниже вызовов API? - PullRequest
0 голосов
/ 17 января 2020

ниже - мой код для вызова API GitHub через curl с python, как мне прекратить использовать curl и использовать библиотеку запросов для выполнения вызовов API? Я просто запутался в том, как будет выглядеть вызов конечных точек API ниже при использовании запросов.

def api_request(self):
        api_key = sys.argv[0]
        organization = sys.argv[1]
        print("------------------------------------------People with 2FA Disabled-----------------------------------------------")
        comm = 'curl -v "https://api.github.com/orgs/"{}"/members?filter=2fa_disabled" -H "Authorization: bearer {}"'.format(organization, api_key)
        os.system(comm)
        print("-----------------------------------------Collaborators being listed----------------------------------------------")
        comm2 = 'curl -v "https://api.github.com/orgs/"{}"/outside_collaborators" -H "Authorization: bearer {}"'.format(organization, api_key)
        os.system(comm2)
        print("-----------------------------------------Members and data Being listed----------------------------------------------")
        comm3 = 'curl -v "https://api.github.com/orgs/"{}"/members" -H "Authorization: bearer {}"'.format(organization, api_key)
        os.system(comm3)

Ответы [ 3 ]

1 голос
/ 17 января 2020

import requests
import urllib.request
import io

api_key = sys.argv[0]
organization = sys.argv[1]

url="https://api.github.com/orgs/"{}"/members?filter=2fa_disabled" -H "Authorization: bearer {}".format(organization, api_key)
response = requests.get(url).content

в зависимости от формата ответа, вы можете попробовать

import pandas
df=pandas.read_csv(io.StringIO(response.decode('utf-8')))
0 голосов
/ 17 января 2020

Я просто не понимаю, как будут выглядеть следующие конечные точки API при использовании запросов.

Что-то вроде:

import requests
import sys
import os

def api_request(self):
    api_key = sys.argv[0]
    organization = sys.argv[1]
    print("------------------------------------------People with 2FA Disabled-----------------------------------------------")
    requests.get("https://api.github.com/orgs/{}/members?filter=2fa_disabled".format(organization),  auth=('bearer', api_key))
0 голосов
/ 17 января 2020

Вот пример, который может вам помочь:

responseAPI1 = requests.post('URL',json=data,auth = ('username','password'))

ИЛИ

headers = {
    'X-ABC-API-ID': 'x-x-x-x-x',
    'X-ABC-API-KEY': 'nnnnnnnnnnnnnnnnnnnnnnn',
    'X-DE-API-ID': 'x',
    'X-DE-API-KEY': 'nnnnnnnnnnnnnnnnnnnnnnnn'
}
r = requests.get('https://www.somecompany.com/api/v2/groups/', headers=headers)
...