當我調用REST API象下面這樣:SoftLayer API選項跳過一些返回的屬性?
GET https://api.softlayer.com/rest/v3/SoftLayer_Product_Package/206/getCategories.json?objectMask=id;name;categoryCode;groups.prices.item;groups.prices.attributes.itemPriceAttributeType;packageConfigurations.isRequired;packageConfigurations.orderStepId;packageConfigurations.sort
我得到迴應的身體像以下(僅部分列出):
[
{
"categoryCode" : "hub",
"groups" : [
{
"itemCategoryId" : 74,
"packageId" : 206,
"prices" : [
{
"attributes" : [],
"currentPriceFlag" : null,
"id" : 30920,
"item" : {
"capacity" : "0",
"description" : "Object Storage - Pay as you go",
"id" : 4069,
"itemCategory" : {
"categoryCode" : "hub",
"groups" : [
{
"itemCategoryId" : 74,
"packageId" : 206,
"prices" : [
我想所有groups.prices.item的信息,但是我不希望groups.prices.item擁有的「itemCategory」數據。是否有一個選項可以排除某些屬性,以便返回的數據不包含該特定數據?一些其他掩碼來排除數據?
在上面的響應數據示例中,我基本上不希望包含itemCategory部分。這個數據在這裏:
"itemCategory" : {
"categoryCode" : "hub",
"groups" : [
{
"itemCategoryId" : 74,
"packageId" : 206,
"prices" : [
它似乎東西的SoftLayer API改變了,當我嘗試用PHP做什麼json_encode($ catResult),其中$ catResult是SoftLayer_Product_Package :: getCategories的結果()和json_encode()函數檢測recurssion以便終止。根據我使用海報的數據,它可能看起來像一個遞歸可能存在,但它實際上重複相同的數據一次,而不是永遠。但是,也許海報很聰明,在第一次重複之後就把它關掉了,但我不知道它真的這麼做了,或者我得到的是SoftLayer的全部數據。無論如何,我認爲我只需要一種方法來不包含這個「itemCategory」值來解決問題。請幫忙。謝謝。
就像你提到的是我現在用作解決方法,但我不想列出每個項目的屬性。相反,我喜歡除了這個特定的屬性之外,還想讓所有的東西都返回,我不認爲我已經看到了指定類似的東西的方法。 – KHP
你說得對,當我們使用「對象掩碼」時,有必要指定我們想要在響應中顯示的每個屬性。 – mcruz