פתרון בעיות בפריסת מדיניות XML ל-JSON

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

EitherOptionOrFormat

הודעת השגיאה

כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:

Error Saving Revision [revision_number]
XMLToJSON[{0}]: Either Options or Format must be specified.

שגיאה לדוגמה

Error Saving Revision 1
XMLToJSON[{0}]: Either Options or Format must be specified.

צילום מסך לדוגמה

סיבה

אם אחד מהאלמנטים <Options> או <Format> לא מוצהר במדיניות XML ל-JSON, הפריסה של שרת proxy ל-API תיכשל.

אם לא משתמשים ב-<Format>, חובה לציין את הפרמטר <Options>.

צריך להשתמש ברכיב <Format> או בקבוצת הרכיבים <Options>. לא ניתן להשתמש גם ב-<Format> וגם ב-<Options>. הפורמטים המוגדרים מראש כוללים: xml.com, yahoo, google ו-badgerFish.

אבחון

  1. יש לבדוק את כל כללי המדיניות מסוג XML ל-JSON בשרת ה-API הספציפי שבו אירעה הכשל. אם יש מדיניות XML ל-JSON שבה אחד מהרכיבים <Options> או <Format> לא הוצהר, זו הסיבה לשגיאה.

    לדוגמה, במדיניות הבאה אין אף אחד מהאלמנטים המוצהרים:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
        <DisplayName>XMLToJSON</DisplayName>
        <Properties/>
        <OutputVariable>response</OutputVariable>
        <Source>response</Source>
    </XMLToJSON>
    

רזולוציה

צריך לוודא שה-XML של המדיניות מסוג XML ל-JSON כולל אחד מהרכיבים <Options> או <Format> שהוצהרו במדיניות.

דוגמה 1:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
    <DisplayName>XMLToJSON</DisplayName>
    <Properties/>
    <Format>google</Format>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</XMLToJSON>

דוגמה 2:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
    <DisplayName>XMLToJSON</DisplayName>
    <Properties/>
    <Options>
        <RecognizeNumber>true</RecognizeNumber>
        <RecognizeBoolean>true</RecognizeBoolean>
        <RecognizeNull>true</RecognizeNull>
    </Options>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</XMLToJSON>

UnknownFormat

הודעת השגיאה

כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:

Error Saving Revision [revision_number]
XMLToJSON[policy_name]: Unknown Format [unknown_format].

שגיאה לדוגמה

Error Saving Revision 1
XMLToJSON[WithFormat]: Unknown Format google.com.

צילום מסך לדוגמה

סיבה

אם לאלמנט <Format> במדיניות XML ל-JSON מוגדר פורמט לא ידוע, הפריסה של שרת ה-proxy של ה-API תיכשל.

הפורמטים המוגדרים מראש כוללים: xml.com, yahoo, google ו-badgerFish.

אבחון

  1. יש לזהות את מדיניות ה-XML ל-JSON שבה אירעה השגיאה ואת הפורמט הלא ידוע. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא WithFormat והפורמט הלא ידוע הוא google.com:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. יש לוודא שהפורמט הלא ידוע שצוין במדיניות ה-XML ל-JSON שנכשל תואם לערך שזוהה בהודעת השגיאה (שלב 1 למעלה). לדוגמה, המדיניות הבאה מציינת את הפורמט google.com, שתואם לתוכן הודעת השגיאה:

    <XMLToJSON async="false" continueOnError="false" enabled="true" name="WithFormat">
      <DisplayName>WithFormat</DisplayName>
      <Properties/>
      <Format>google.com</Format>
      <OutputVariable>response</OutputVariable>
      <Source>response</Source>
    </XMLToJSON>
    
  3. אם הפורמט שצוין אינו אחד מהפורמטים המוגדרים מראש xml.com, yahoo, google או badgerFish, זו הסיבה לשגיאה.

    בדוגמת המדיניות של XML ל-JSON שמוצגת למעלה, הפורמט הוא google.com שאינו חוקי. לכן פריסת ה-API של שרת ה-Proxy נכשלת ומוצגת השגיאה:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

רזולוציה

צריך לוודא שהפורמט שמצוין ברכיב <Format> של המדיניות מסוג XML ל-JSON תקין. לדוגמה:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="WithFormat">
  <DisplayName>WithFormat</DisplayName>
  <Properties/>
  <Format>google</Format>
  <OutputVariable>response</OutputVariable>
  <Source>response</Source>
</XMLToJSON>