Junior
Amallarni bajarishda HTTP usullaridan nima uchun foydalaniladi?
sobes.tech AI
AIdan javob
HTTP-методлар (GET, POST, PUT, PATCH, DELETE) сервердаги ресурсга амалга оширилаётган ҳаракат турини белгилайди. Бу қуйидагича таъминлайди:
- Маънани аниқлик: Ҳар бир метод мижознинг ниятини аниқ кўрсатади (ресурсни олиш, яратиш, янгилаш, ўчириш).
- Кэшлаш:
GETметоду стандарт ҳолда кэшланади, бу ишлаш самарадорлигини оширади. Бошқа ҳолатдаги методлар, улар ҳолатни ўзгартирса, одатда кэшланмайди. - Идемпотентлик: Айрим методлар (
GET,PUT,DELETE) идемпотентдир, яъни бир хил амалиётни бир неча марта такрорлаш, бир марта амалга ошириш билан бир хил натижани беради. Бу ишончлилик ва такрорлашга муҳимдир.POSTидемпотент эмас. - Хавфсизлик: Методларни ажратиш хавфсизлик сиёсати амалга оширилишига ёрдам беради, муайян операцияларга кириш чекланади.
- Стандартлаштириш: Стандарт методларнинг қўлланиши турли тизимлар ва инструментлар ўртасида ўзаро алоқани осонлаштиради.
- Хатоларни кузатиш: HTTP ҳолат кодлари (масалан, 200 OK, 404 Not Found) муайян метод контекстида кўпроқ маълумот беради ва сўров натижасини кўрсатади.
Масалан:
import requests
# Ресурсни олиш
response_get = requests.get("https://api.example.com/users/123")
print(f"GET Статуси: {response_get.status_code}")
# Ресурс яратиш
data_post = {"name": "John Doe", "email": "john.doe@example.com"}
response_post = requests.post("https://api.example.com/users", json=data_post)
print(f"POST Статуси: {response_post.status_code}")
# Ресурсни янгилаш
data_put = {"name": "Jane Doe"}
response_put = requests.put("https://api.example.com/users/123", json=data_put)
print(f"PUT Статуси: {response_put.status_code}")
# Қисмли янгилаш
data_patch = {"email": "jane.doe.updated@example.com"}
response_patch = requests.patch("https://api.example.com/users/123", json=data_patch)
print(f"PATCH Статуси: {response_patch.status_code}")
# Ресурсни ўчириш
response_delete = requests.delete("https://api.example.com/users/123")
print(f"DELETE Статуси: {response_delete.status_code}")