顯示具有 Service Stack 標籤的文章。 顯示所有文章
顯示具有 Service Stack 標籤的文章。 顯示所有文章

2012年5月25日

REST:Representational State Transfer

因為 Service Stack裡面有提到 REST-ful

所以來研究一下

  1. http://zh.wikipedia.org/zh-tw/REST
  2. REST[轉貼]

  • 資源是由URI來指定。
  • 對資源的操作包括獲取、創建、修改和刪除資源,這些操作正好對應HTTP協議提供的GET、POST、PUT和DELETE方法。
  • 通過操作資源的表現形式 (指定URI)來操作資源。


優點:
  • 可以利用緩存Cache來提高響應速度
  • 通訊本身的無狀態性可以讓不同的伺服器的處理一系列請求中的不同請求,提高伺服器的擴展性
  • 瀏覽器即可作為客戶端,簡化軟體需求
  • 相對於其他疊加在HTTP協議之上的機制,REST的軟體依賴性更小
  • 不需要額外的資源發現機制
  • 在軟體技術演進中的長期的兼容性更好


REST-ful Web API 定義:
  • URI。
  • Web服務接受與返回的網際網路媒體類型,如 json、xml等。
  • Web服務在該資源上所支持的一系列請求方法(如:post、get、put、delete)。

疑問:

  1. 在REST[轉貼]中提到,一般網址:
    http://www.some_site.com/user/find/123
    到了 REST會變成 :
    http://www.some_site.com/user/123  搭配 http的「Get」

    http://www.some_site.com/user/123  搭配 http的「Put」
    這兩個 REST的網址都長得一樣,那沒有動詞的 URL要怎麼知道現在是要做 get還是 put ??
  2. MVC是否符合 REST設計風格??


2012年5月23日

Service Stack Example_1 Hello

1.安裝 Service Stack:
透過 NuGet下載 ServiceStack.Host.AspNet 或 ServiceStack.Host.Mvc

2.開新專案

3.將 Service Stack套用至此專案  //加入參考 ServiceStack.dll
可分:希望有 Web Framework (host from the root path:/)
<location path="servicestack">
  <system.web>
    <httpHandlers>
      <add path="*" 
           type="ServiceStack.WebHost.Endpoints.
                 ServiceStackHttpHandlerFactory, ServiceStack" 
           verb="*"/>
    </httpHandlers>
  </system.web>

  <!-- Required for IIS 7.0 -->
  <system.webServer>
    <handlers>
      <add path="*" 
           name="ServiceStack.Factory" 
           type="ServiceStack.WebHost.Endpoints.
                 ServiceStackHttpHandlerFactory, ServiceStack" 
           verb="*" 
           preCondition="integratedMode" 
           resourceType="Unspecified" 
           allowPathInfo="true" />
    </handlers>
  </system.webServer>
</location>
          希望沒有 Web Framework (host web services at :/custompath)
<location path="servicestack">
  <system.web>
    <httpHandlers>
      <add path="*" 
           type="ServiceStack.WebHost.Endpoints.
                 ServiceStackHttpHandlerFactory, ServiceStack"
           verb="*"/>
    </httpHandlers>
  </system.web>

  <!-- Required for IIS 7.0 -->
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add path="*" 
           name="ServiceStack.Factory" 
           type="ServiceStack.WebHost.Endpoints.
                 ServiceStackHttpHandlerFactory, ServiceStack"
           verb="*" 
           preCondition="integratedMode" 
           resourceType="Unspecified" 
           allowPathInfo="true" />
    </handlers>
  </system.webServer>
</location>

4.建立 Web Service

......吧啦吧啦一堆程式碼


5.在 URL中設定用不同的方式(檔案格式)呼叫 Web Service的方法
XML (POX), JSON, JSV, CSV urls:
/servicestack/[xml|json|html|jsv|csv]/[syncreply|asynconeway]/[servicename]

Http post from data:
<form action="servicestack/xml/syncreply/Hello" method="post">
    <label>Name:</label>
    <input type="text" name="Name" value="World!">
    <input type="submit">
</form>


SOAP Web Service urls:
/servicestack/[soap11|soap12]







User defined REST-ful urls:
Accessible via any REST-ful urls defined using the [RestService] Attribute. e.g. in this case:
/servicestack/hello/{Name}



......待續

Service Stack

前幾天被 Cindy分派研究一下 Service Stack

嗯 ... 好難懂

目前稍微理解的有 Code-First是在幹嘛

還有 Service Stack的一個優點: 可以在 URL上做手腳,要求回傳的資料為 JSON、XML、HTML等多種格式

繼續研究