2017-06-19 49 views
0

我只想列出「索引」請求中的某些字段,並在詳細請求中列出更多字段。例如,如何在Yii2中設置字段()Restful API

當用戶呼叫:http://api.example.com/users,服務器返回:

{ 
 
    'id':1, 
 
    'name': "John" 
 
}, 
 
{ 
 
'id':2, 
 
'name': "Henry" 
 
} 
 
...

當用戶呼叫:http://api.example.com/users/1,服務器返回:

{ 
 
    'id':1, 
 
    'name': "John", 
 
    'gender': "M" 
 
    'dob': "1995-01-01" 
 
    'address': "1 Bay Road" 
 
},

如何設置fields()或extraFields()函數來做到這一點,而不要求用戶添加像「expand = gender,dob,address」這樣的新參數?

謝謝。

回答

0

爲指導,你可以使用這樣的:

http://api.example.com/users?fields=id,name 

http://api.example.com/users/1?fields=id,name,gender,dob,address 
+0

謝謝,丹尼爾。那可行。我想要做的事情會自動返回不同的數據集,而不要求用戶指出要返回哪些字段。有沒有辦法? –

+0

覆蓋子類中的fields()方法,詳細使用子類class http://www.yiiframework.com/doc-2.0/guide-rest-resources.html#fields – zakrzu

+0

@AaronChen return $ model-> toArray( $ fieldArray)而不是在UserController的操作中返回$ model –