通過ServiceStack創建第一個webServcie

創建你的第一個WebService

這是一個關于構建并允許并同時看一看不同組件是如何工作的快速預覽。

第一步:下載并安裝ServiceStackVS插件

第一我們希望安裝ServiceStackVS的visual studio的擴展。最簡單的方式是通過內置在Visual Studio-【工具】-【擴展和更新】...進行搜索和安裝

image
image

第二步:選擇模板

當ServiceStackVs擴展已經安裝,當你創建新的項目時你就有新的項目模板可以使用,例如,讓我們選擇ServiceStack ASP.NET Empty來開始。

image

但你通過模板來創建你的應用,你就會得到4個項目在你的解決方案中,如果你使用的是默認名字,你就會以下面的結構構建這個解決方案。

image

第三步:

通過F5運行你的項目

image
image

運行結果(postman):

image

它是如何運行的?

現在新項目已經運行,讓我們來看看我們已經有了哪些內容。模板提供了一個單獨的Web服務路由,該路由位于WebApplication1.ServiceModel項目下的Hello.cs文件里的請求DTO(數據傳輸對象)的對象。

[Route("/hello/{Name}")]

public class Hello : IReturn<HelloResponse>
{
public string Name { get; set; }
}

public class HelloResponse
{
public string Result { get; set; }
}

這個Route特性說明路徑/hello/{Name}{Name}將它的值綁定到了公開的Name的字符串屬性上

讓我們通過這個路由來看下它的返回,通過如下人URL到你的地址欄
http://{BaseUrl}/hello/world
你可能看到一個HTML的返回格式的內容。將返回格式化為Json,只需要加?format=json到URL的末尾,

如何你到解決方案中去找WebApplication1.ServiceInterface并且打開Myservice.cs文件,你就可以看到響應到瀏覽器的代碼。給我們Result的返回

public class MyServices : Service
{
    public object Any(Hello request)
    {
        return new HelloResponse { Result = $"Hello, {request.Name}!" };
    }
}

如何你看上面代碼,必須注意一些事情。方法名Any意味著方法運行在任何可能的Http Verbs上,服務方法就是你控制從你的服務中返回內容的地方。

第四步:探索這個ServiceStack的解決方案

下面推薦的結構是構建進了所有的ServiceStack VS.NET的模板中,模板創建任何一個ServiceStack項目至少包含四個項目來保證解決方案從一開始就是最佳邏輯項目層次,并為后續項目的可維護性,高內聚,可復用打下基礎。

Host Project

這個主項目包含你的AppHost,它引用和注冊在IOC中的所有依賴項,并且包含了所有配置項和全局行為的中心位置。它也引用了所有的Web資源,例如razor Views,JS,CSS,Images,Fonts等。這需要同應用一起部署。AppHost是一個頂層項目,他引用了應用程序鎖使用的所有依賴項,它的作用類似于一個協調器和管道,它決定了那些功能可用,那些具體實現被使用。被設計為引用所有項目同時不被其他項目引用,作為一個全局目標,應該避免任何應用和業務邏輯。

ServiceInterface Project

服務接口項目時包含了所有業務邏輯和服務的實現項目。它引用了除Host Project的所有項目,中小型項目可以通過邏輯劃分特性文件夾來包含所有的實現。大型解決方案可以劃分未更加內聚的模塊項目,同時我們建議封裝他們可能使用的所有依賴。

ServiceModel Project

ServiceModel 項目包含所有的你的程序的數據傳輸對象,這些對象定義了你的服務契約。keeping them isolated from any Server implementation is how your Service is able to encapsulate its capabilities and make them available behind a remote facade.對于每一個解決方案最好只有一個包含你所有DTOs的ServiceModel項目。作為實現項,依賴項,無邏輯的服務契約,從實現和相互依賴來確保你的服務不會包含特定的客戶端實現,并且確保這是唯一需要客戶端通過直接引用ServiceModel.dll或者通過添加ServiceStack引用遠程ServiceStack服務實例下載Dtos的來調用你的服務的項目。

參考:Create your first WebService

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,242評論 25 708
  • 我隆起的肚子懷著他的孩子 他卻躺在你的懷里 你是那個千夫所指的小三 我不怪你 攜手走過的歲月 抵不過一個妖冶的媚眼...
    夢谷閱讀 436評論 7 3
  • 2017年6月25日 星期日 晴 今天新的課程有點難度,莉塔指導員解析FABE、SPIN法則聽得模模糊糊沒有完全理...
    雪媚閱讀 147評論 0 0
  • 這本書出現的真及時。又或者說,我自己想要這樣做,就去尋找這類別的書,還有兩本沒有看,不持有的人生和斷舍離。 就目前...
    海路得閱讀 483評論 0 3