Sobes.tech
Junior

Чаро дар иҷрои амалҳо усулҳои HTTP истифода бурда мешаванд?

sobes.tech AI

Ҷавоб аз AI

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}")