אם הגדרתם דרישה למפתח API ב-API שלכם, בקשות לשיטה, למחלקה או ל-API המוגנים יידחו אלא אם הן כוללות מפתח שנוצר בפרויקט שלכם או בפרויקטים אחרים ששייכים למפתחים שהענקתם להם גישה להפעלת ה-API. הפרויקט שבו נוצר מפתח ה-API לא מתועד ולא מתווסף ל-request header. עם זאת, אפשר לראות את Google Cloud הפרויקט שאליו משויך לקוח בדף Endpoints Services, כפי שמתואר במאמר סינון לפי פרויקט צרכן ספציפי.
מידע על הפרויקט Google Cloud שבו צריך ליצור מפתח API זמין במאמר בנושא שיתוף ממשקי API שמוגנים באמצעות מפתח API.
הגבלת הגישה לכל שיטות ה-API
כדי לדרוש מפתח API לכל הקריאות ל-API, מוסיפים apiKeyRequired = AnnotationBoolean.TRUE להערת@Api.
לדוגמה:
@Api(
name = "echo",
version = "v1",
apiKeyRequired = AnnotationBoolean.TRUE
)
public class Echo {
//API class and methods...
}
הגבלת הגישה לשיטות ספציפיות של API
כדי לדרוש מפתח API לכל הקריאות לשיטה ספציפית של API, מוסיפים apiKeyRequired = AnnotationBoolean.TRUE ל-@ApiMethod annotation.
לדוגמה:
כדי לדרוש מפתח API לכל הקריאות למחלקת API ספציפית, מוסיפים את הערך apiKeyRequired = AnnotationBoolean.TRUE לאנוטציה @ApiClass.
הסרת הגבלה של מפתח API משיטה
כדי להשבית את האימות של מפתח API עבור API או method של API, מסירים את api_key_required=True (Python) או את apiKeyRequired = AnnotationBoolean.TRUE (Java) מהדקורטור או מההערה של ה-API או ה-method. ואז צריך לבצע קומפילציה מחדש ולפרוס מחדש.
שליחת קריאה ל-API באמצעות מפתח API
אם API או שיטת API דורשים מפתח API, צריך לספק את המפתח באמצעות פרמטר שאילתה בשם key, כמו בדוגמה הזו של cURL:
curl \
-H "Content-Type: application/json" \
-X POST \
-d '{"message": "echo"}' \
"${HOST}/_ah/api/echo/v1/echo_api_key?key=${API_KEY}"
כאשר HOST ו-API_KEY הם משתנים שמכילים את שם המארח של ה-API ומפתח ה-API, בהתאמה. מחליפים את echo בשם ה-API ואת v1 בגרסת ה-API.
שיתוף ממשקי API שמוגנים באמצעות מפתח API
מפתחות API משויכים ל Google Cloud פרויקט שבו הם נוצרו. אם החלטתם לדרוש מפתח API עבור ה-API שלכם, Google Cloud הפרויקט שבו נוצר מפתח ה-API תלוי בתשובות לשאלות הבאות:
- האם אתם צריכים להבחין בין המתקשרים לממשק ה-API כדי שתוכלו להשתמש בתכונות של Endpoints כמו מכסות?
- האם לכל מי שמתקשר עם ה-API יש פרויקטים משלו ב- Google Cloud ?
- צריך להגדיר הגבלות שונות על מפתחות API?
עץ ההחלטות הבא יעזור לכם להחליט באיזה פרויקט ליצור את מפתח ה-API. Google Cloud
אישור הרשאה להפעלת ה-API
אם אתם צריכים להבחין בין המתקשרים ל-API שלכם, ולכל מתקשר יש פרויקט משלו ב- Google Cloud , אתם יכולים להעניק לישויות הרשאה להפעיל את ה-API בפרויקט שלהן ב- Google Cloud . כך משתמשים ב-API שלכם יכולים ליצור מפתח API משלהם לשימוש ב-API שלכם.
לדוגמה, נניח שהצוות שלכם יצר API לשימוש פנימי על ידי תוכנות לקוח שונות בחברה, ולכל תוכנת לקוח יש פרויקט משלה. Google Cloud כדי להבחין בין מי שקוראים ל-API שלכם, צריך ליצור את מפתח ה-API של כל אחד מהם בפרויקט Google Cloud שונה. אתם יכולים להעניק לעמיתים שלכם הרשאה להפעיל את ה-API בפרויקט Google Cloud שתוכנית הלקוח משויכת אליו.
כדי לאפשר למשתמשים ליצור מפתח API משלהם:
- בפרויקט Google Cloud שבו מוגדר ה-API, מעניקים לכל משתמש את ההרשאה להפעלת ה-API.
- צריך ליצור קשר עם המשתמשים ולהודיע להם שהם יכולים להפעיל את ה-API בפרויקט Google Cloudשלהם ו ליצור מפתח API.
ליצור Google Cloud פרויקט נפרד לכל מתקשר
אם אתם צריכים להבחין בין משתמשים שקוראים ל-API שלכם, ולא לכל המשתמשים יש פרויקטים Google Cloud , אתם יכולים ליצור פרויקט Google Cloud נפרד ומפתח API לכל משתמש. לפני שיוצרים את הפרויקטים, כדאי לחשוב על שמות הפרויקטים כדי שיהיה קל לזהות את המתקשר שמשויך לפרויקט.
לדוגמה, נניח שיש לכם לקוחות חיצוניים של ה-API שלכם, ואין לכם מושג איך נוצרו תוכנות הלקוח שקוראות ל-API שלכם. יכול להיות שחלק מהלקוחות משתמשים בשירותים Google Cloud ויש להם פרויקט Google Cloud , ויכול להיות שלחלק מהם אין. כדי להבחין בין המתקשרים, צריך ליצור Google Cloud פרויקט ומפתח API נפרדים לכל מתקשר.
כדי ליצור Google Cloud פרויקט ומפתח API נפרדים לכל מתקשר:
- יוצרים פרויקט נפרד לכל מתקשר.
- בכל פרויקט, מפעילים את ה-API ו יוצרים מפתח API.
- נותנים את מפתח ה-API לכל מי שמבצע קריאה ל-API.
יצירת מפתח API לכל מתקשר
אם אתם לא צריכים להבחין בין קריאות ל-API, אבל אתם רוצים להוסיף הגבלות על מפתח API, אתם יכולים ליצור מפתח API נפרד לכל קורא באותו פרויקט.
כדי ליצור מפתח API לכל קורא באותו פרויקט:
- בפרויקט שבו מוגדר ה-API או בפרויקט שבו ה-API מופעל, יוצרים מפתח API לכל לקוח עם ההגבלות על מפתח ה-API שאתם צריכים.
- נותנים את מפתח ה-API לכל מי שמבצע קריאה ל-API.
יצירת מפתח API אחד לכל המתקשרים
אם אתם לא צריכים להבחין בין מי שקורא ל-API שלכם, ואתם לא צריכים להוסיף הגבלות ל-API, אבל אתם עדיין רוצים לדרוש מפתח API (למשל כדי למנוע גישה אנונימית), אתם יכולים ליצור מפתח API אחד שכל מי שקורא ל-API יוכל להשתמש בו.
כדי ליצור מפתח API אחד לכל המתקשרים:- בפרויקט שבו מוגדר ה-API או בפרויקט שבו ה-API מופעל, יוצרים מפתח API לכל המתקשרים עם הגבלות על מפתח ה-API שנדרשות לכם.
- נותנים את אותו מפתח API לכל מי שמתקשר.