REST API-k használata Pythonban

Csomagok telepítése

A HTTP kommunikációhoz szükséges a requests python függvénykönyvtár telepítése, mely az alábbi módon tehető meg a terminálban:

pip install requests

Olvasás

import requests

id = "mbs0dep5l1hnm9y71ujmxgacsdaflkjsdfkljsadflkj"

url = f"https://api.simontam.as/interface/{id}"

valasz = requests.get(url)

print(valasz.status_code)
import requests

url = f"https://api.simontam.as/interface"

valasz = requests.get(url)

print(valasz.status_code)

Listázás lapozás használatával

import requests

query = {
    "sort": "id",
    "dir": "desc",
    "limit": 150,
    "skip": 0
}

osszes_adat = []
total = -1
request_count = 0

while total == -1 or query["skip"] < total:
    request_count += 1
    print(f"Sending request #{request_count}...")
    valasz = requests.get("https://api.simontam.as/interface", params=query)
    adat = valasz.json()
    total = adat["total"]
    query["skip"] += query["limit"]
    osszes_adat.extend(adat["data"])

print(len(osszes_adat))

Új elem létrehozása

import requests

body = {
  "switchName": "SW-AGGREGATION",
  "interface": "FortyGigabitEthernet1/0/0/1",
  "vlanId": 1,
  "speedMbps": 40000,
  "status": "connected",
  "description": "test"
}

url = "https://api.simontam.as/interface"

valasz = requests.post(url, json=body)

print(valasz.status_code)
print(valasz.json())

Meglévő elem frissítése

import requests

id = "wsmdulrz5xjhi2l9ctwyvy8r"

body = {
  "switchName": "SW-AGGREGATION-10",
  "interface": "FortyGigabitEthernet1/0/0/1",
  "vlanId": 1,
  "speedMbps": 40000,
  "status": "connected",
  "description": "test"
}

url = f"https://api.simontam.as/interface/{id}"

valasz = requests.put(url, json=body)

print(valasz.status_code)
print(valasz.json())

Meglévő elem törlése

import requests

query = {
    "sort": "id",
    "dir": "desc",
    "limit": 1,
    "skip": 0
}

base_url = "https://api.simontam.as/interface"

id_to_delete = requests.get(base_url, params=query).json()["data"][0]["id"]

url = f"{base_url}/{id_to_delete}"
print(url)

delete_valasz = requests.delete(url)
print(delete_valasz.status_code)

Basic hitelesítés

import requests

url = "https://api.simontam.as/basic/interface"

valasz = requests.get(
    url,
    auth=("user", "password")
)

print(valasz.status_code)

'Authorization' fejléc/token hitelesítés

import requests

login_info = {
  "username": "user",
  "password": "password"
}

url = "https://api.simontam.as/token/login"

login_valasz = requests.post(url, json=login_info).json()

token = login_valasz["token"]

url = "https://api.simontam.as/token/interface"
headers = {
    "Authorization": f"Bearer {token}"
}

valasz = requests.get(
    url,
    headers=headers
)

print(valasz.status_code)

Cookie/session hitelesítés

import requests

login_info = {
  "username": "user",
  "password": "password"
}

url = "https://api.simontam.as/session/login"

login_valasz = requests.post(url, json=login_info)

session_id = login_valasz.cookies.get("sessionId")

url = "https://api.simontam.as/session/interface"

cookies = {
    "sessionId": session_id
}

valasz = requests.get(
    url,
    cookies=cookies
)

print(valasz.status_code)