假設DogManagementPro程序是一個用客戶端/服務器架構編寫的應用程序,購買它的客戶應該在自己的PC上運行服務器,並在本地或遠程訪問它。在REST API中返回絕對值和相對URI
假設我想支持DogManagementPro REST API中的「列出所有狗」操作。
所以GET來http://localhost/DogManagerPro/api/dogs
現在應該獲取如下回應:
<dogs>
<dog>http://localhost/DogManagerPro/api/dogs/ralf</dog>
<dog>http://localhost/DogManagerPro/api/dogs/sparky</dog>
</dogs>
,我想遠程訪問本地局域網上,[我的機器的本地IP是192.168.0.33] 又該aa GET到http://192.168.0.33:1234/DogManagerPro/api/dogs
取閱?
它應該是:
<dogs>
<dog>http://localhost/DogManagerPro/api/dogs/ralf</dog>
<dog>http://localhost/DogManagerPro/api/dogs/sparky</dog>
</dogs>
或者是:
<dogs>
<dog>http://192.168.0.33/DogManagerPro/api/dogs/ralf</dog>
<dog>http://192.168.0.33/DogManagerPro/api/dogs/sparky</dog>
</dogs>
?
有些人認爲我應該像這樣只返回路徑元素完全消退的問題:
<dogs>
<dog>/DogManagerPro/api/dogs/ralf</dog>
<dog>/DogManagerPro/api/dogs/sparky</dog>
</dogs>
什麼是最好的方法是什麼?
還有使用域的選項。然後您將擁有'http:// dogmanagerpro/api/dogs/sparky'其中'dogmanagerpro'將被設置爲指向服務器正在偵聽的特定machine:port。此選項對於更改物理地址而言是最靈活的,但它要求客戶運行可將DogManagerPro映射到絕對地址的自己的域服務器(DNS服務器)。 – 2012-07-13 06:36:18