סוג ופורמט

אפשר להשתמש במאפיינים type ו-format בפרמטרים ובסכימות כדי לקבוע את סוג הנתונים של המאפיין. המאפיין type מציין את סוג המאפיין כששולחים אותו בבקשות ובתגובות בפורמט JSON (פורמט JSON תומך בקבוצה קטנה של סוגי נתונים, פרטים נוספים זמינים בכתובת json.org). ‫format המאפיין מספק מידע נוסף על הסוג הבסיסי. לנכסים תמיד יש מאפיין type, אבל לחלק מהנכסים יש גם מאפיין format.

לדוגמה, אי אפשר לייצג מספר שלם של 64 ביט ב-JSON (כי JavaScript ו-JSON תומכים במספרים שלמים עד 2^53). לכן, מספר שלם של 64 ביט צריך להיות מיוצג כמחרוזת בבקשות או בתגובות של JSON. לכן המאפיין type יוגדר כ-string, אבל המאפיין format יוגדר כ-int64 כדי לציין שמדובר במספר שלם בן 64 ביט.

במפרט של JSON Schema כבר מוגדרת קבוצה של ערכים נפוצים לנכס format. ‫Google APIs Discovery Service תומך בחלק מהערכים האלה, ומגדיר גם ערכים אחרים. בהמשך מופיע סיכום של הרשימה המלאה של הערכים type ו-format שנתמכים על ידי Google APIs Discovery Service.

הקלדת ערך ערך הפורמט משמעות
any הנכס יכול להיות מכל סוג. מוגדר על ידי מפרט סכימת ה-JSON.
any google.protobuf.Value למאפיין יש ייצוג JSON של הסוג google.protobuf.Value.
array מערך ערכים ב-JavaScript. המאפיין items מציין את הסכימה של ערכי המערך. מוגדר על ידי מפרט סכימת ה-JSON.
array google.protobuf.ListValue המאפיין מכיל ייצוג JSON של הסוג google.protobuf.ListValue.
boolean ערך בוליאני, true או false. מוגדר על ידי מפרט סכימת ה-JSON.
integer int32 מספר שלם ב-32 ביט עם סימן. הערך המינימלי הוא ‎-2,147,483,648 והערך המקסימלי הוא ‎2,147,483,647 (כולל).
integer uint32 מספר שלם לא מסומן ב-32 ביט. ערך המינימום הוא 0 וערך המקסימום הוא 4,294,967,295 (כולל).
number double מספר בשיטת נקודה צפה (floating-point) של 64 ביט בתקן IEEE 754.
number float מספר בשיטת נקודה צפה (floating-point) ב-32 ביט לפי תקן IEEE 754.
object אובייקט JavaScript. מוגדר על ידי מפרט סכימת ה-JSON.
object google.protobuf.Struct המאפיין מכיל ייצוג JSON של הסוג google.protobuf.Struct.
object google.protobuf.Any למאפיין יש ייצוג JSON של הסוג google.protobuf.Any.
string מחרוזת שרירותית. מוגדר על ידי מפרט סכימת ה-JSON.
string byte מחרוזת של בייטים בקידוד base64 עם ריפוד, מקודדת באמצעות כתובת URL ואלפבית בטוח לשם קובץ (לפעמים נקראת 'בטוחה לאינטרנט' או 'base64url'). מוגדר על ידי RFC4648.
string date תאריך בפורמט RFC3339,‏ YYYY-MM-DD. מוגדר במפרט של סכימת JSON.
string date-time חותמת זמן בפורמט RFC3339, לפי שעון UTC. הפורמט הוא yyyy-MM-ddTHH:mm:ss.SSSZ. החלק של אלפיות השנייה (‎.SSS) הוא אופציונלי. מוגדר במפרט של סכימת JSON.
string google-datetime חותמת זמן בפורמט RFC3339, לפי שעון UTC. הפורמט הוא yyyy-MM-ddTHH:mm:ss.SSSZ. החלק של אלפיות השנייה (‎.SSS) הוא אופציונלי.
string google-duration מחרוזת שמסתיימת בסיומת 's' (לציון שניות) ולפניה מספר השניות, כאשר ננו-שניות מבוטאות כשבריר של שניות. תמיד משתמשים בנקודה בתור הנקודה העשרונית, ולא בפסיק.
string google-fieldmask מחרוזת שבה שמות השדות מופרדים בפסיק. שמות השדות מיוצגים לפי מוסכמות של שמות בפורמט lower-camel.
string int64 מספר שלם חתום ב-64 ביט. הערך המינימלי הוא ‎-9,223,372,036,854,775,808 והערך המקסימלי הוא ‎9,223,372,036,854,775,807 (כולל).
string uint64 מספר שלם ללא סימן (unsigned integer) של ‎64 ביט. הערך המינימלי הוא 0 והערך המקסימלי הוא (2^64)-1 (כולל).