במקרים רבים, כדאי להשתמש בקודי סטטוס נפוצים של HTTP כדי לציין אם בקשת API של משתמש הצליחה או נכשלה. לדוגמה, אם משתמש מנסה לאחזר ישות שלא קיימת, יכול להיות שתרצו לשלוח קוד סטטוס HTTP 404 כדי לציין שלא קיימת ישות עם המזהה entity_id.
אפשר לשלוח קודי מצב נפוצים של HTTP על ידי יצירת חריגה שסופקה על ידי ספריית נקודות הקצה, באופן הבא:
message = 'No entity with the id "%s" exists.' % entity_id
raise endpoints.NotFoundException(message)
חריגים שסופקו על ידי Endpoints Frameworks
ספריית נקודות הקצה מספקת את החריגים הבאים, שמתאימים לקודי סטטוס ספציפיים של HTTP:
| חריג | קוד סטטוס של HTTP מתאים |
|---|---|
endpoints.BadRequestException |
HTTP 400 |
endpoints.UnauthorizedException |
HTTP 401 |
endpoints.ForbiddenException |
HTTP 403 |
endpoints.NotFoundException |
HTTP 404 |
endpoints.InternalServerErrorException |
HTTP 500 |
קודי סטטוס נתמכים של HTTP
Cloud Endpoints Frameworks תומך בקבוצת משנה של קודי סטטוס HTTP בתשובות של API. בטבלה הבאה מתוארים הקודים הנתמכים.
| קודי סטטוס של HTTP | תמיכה |
|---|---|
| HTTP 2xx | בדרך כלל, אם ה-method של ה-API מחזיר ערך בהצלחה, ה-Frameworks של Endpoints מניח שקוד הסטטוס הוא HTTP 200.אם סוג התגובה של ה-method של ה-API הוא VoidMessage או שערך ההחזרה של ה-method של ה-API הוא None, קוד הסטטוס שמוגדר הוא HTTP 204. |
| HTTP 3xx | אין תמיכה בקודים מסוג HTTP 3xx. שימוש בכל קודי HTTP 3xx מוביל לתגובת HTTP 404. |
| HTTP 4xx | רק קודי ה-HTTP 4xx הבאים נתמכים:
404, למעט הקודים הבאים:
|
| HTTP 5xx | כל קודי הסטטוס 5xx של HTTP מומרים ל-HTTP 503 בתגובת הלקוח. |
יצירת מחלקות חריגות משלכם
אם רוצים ליצור עוד מחלקות חריגים לקודי סטטוס אחרים של HTTP, אפשר לעשות זאת באמצעות יצירת מחלקת משנה של endpoints.ServiceException. בקטע הקוד הבא אפשר לראות איך יוצרים מחלקת חריגה שמייצגת קוד מצב HTTP 409:
import endpoints
import httplib
class ConflictException(endpoints.ServiceException):
"""Conflict exception that is mapped to a 409 response."""
http_status = httplib.CONFLICT