2013-11-23 23 views
0

我正在用CakePHP構建一個API服務器。如何確保接受頭文件應用程序/ * + json也會在CakePHP 2.x中觸發JsonView?

我按以下要求構建它:

  • 在URL中不使用.jsonJsonView
  • 在URL中不使用v1做使用接受頭application/Person.1.0+json到版本
  • 觸發版本控制和觸發JsonView

據我所知,Ca kePHP已經在接受標題to trigger the JsonView中尋找application/json

如何擴展框架,以便它也可以觸發JsonView?

請留意的是,接受頭是在application/ModelName.version+json

+0

爲什麼在最終獲得解決方案時爲了輕鬆輸出Json數據而打架?對我來說,一個好的API是清楚明瞭的,在這種情況下,它意味着它期望Json擴展json的輸入和輸出。看看其他主要的API如何做到這一點。 – mark

+0

@mark GitHub也有一個奇怪的接受頭爲他們的API。參見http://developer.github.com/v3/他們使用'Accept:application/vnd.github.beta + json' –

回答

0

形式,您可以使用CakeResponse::type()來圖定製accept頭鍵入「JSON」。雖然取決於你的應用程序的大小,這意味着如果你打算使用一個接受標題,如application/ModelName.version+json,添加很多頭。

+0

如何添加多個accept頭文件? application/json; application/MOdelName.version + json。 CakePHP會自動檢測並呈現JsonView嗎? 當然,我想通過控制器中的$ this-> request來找出哪個ModelName和版本取決於我的代碼。 –

+0

或者你是否建議我簡單地爲每個版本的api使用1個自定義標題?意思是這樣的:'Accept:application/appname.version + json' –

+0

我個人覺得每個模型有一個標題有點過分,並且會建議每個api版本使用一個標題。 – ADmad

相關問題