2017-10-09 181 views
0

我正在嘗試測試Saber CreatePassengerNameRecord rest API的集成。作爲第一步,我嘗試下載Request和Response的JSON模式,並嘗試使用jsonschema2pojo生成POJO。但是它看起來像架構文件都使用不存在的URL http://services.sabre.com指向依賴引用。因此,POJO一代正在失敗。對於請求和響應都發生這種情況。通過將XMLSchemaTypes.json依賴項的URL更改爲文檔中提供的URL鏈接,我能夠修復請求模式,但響應中有一個引用,它在任何地方都沒有指定(請檢查響應模式問題部分)。REST JSON的架構無效CreatePassengerNameRecord響應

API鏈接:https://developer.sabre.com/docs/rest_apis/air/book/create_passenger_name_record/

響應架構:

在響應中,存在要http://services.sabre.com/STL_Payload/v02_02參考未現有。

文件:http://files.developer.sabre.com/doc/providerdoc/STPS/create_passenger_name_record/v200/CreatePassengerNameRecord2.0.0RS.json

.... 
"CreatePassengerNameRecordRS" : { 
     "type" : "object", 
     "title" : "CreatePassengerNameRecordRS", 
     "properties" : { 
     "version" : { 
      "type" : "string", 
      "minLength" : 1, 
      "maxLength" : 255 
     }, 
     "ApplicationResults" : { 
      "$ref" : "http://services.sabre.com/STL_Payload/v02_02#/definitions/ApplicationResults" 
.... 

這將是巨大的它,你可以提供的STL_Payload最新的文件或更新文件到最新的工作版本。

回答

1

將丟失的文件添加到文檔頁面。 這應該讓你前進。 這些id-s仍然用作標記而不是絕對資源指針,因此您仍然需要按照您所描述的方式使用它,以使自動生成功能立即可用。 我們會考慮您的請求,將它們轉換爲資源指針。 只要再一個提示:如果您使用jsonschema2pojo的Java的API版本,請用這個配置:

GenerationConfig config = new DefaultGenerationConfig() { 
    public String getRefFragmentPathDelimiters() { 
     return "#/"; 
    } 
}; 

你需要它,因爲在jsonschema2pojo默認路徑分隔符是「#/。」和「。」不適用於架構中聲明的某些類型,如Text.Long