2016年5月21日 星期六

RESTful services for windows iot core

要在Visual Studio 2015上開發Respberry Pi 2 App有一個很重要的必要條件

就是OS必需要是Windows 10

先從RESTful service講起,

目前的windows iot core最新版本是10.0.10586

App的版本和windows iot core的版本要配合,如果要安裝新版的app,

記得要更新windows iot core版本至最新的版本

一直到目前為止,也還沒有釋出官方的RESTful service,

只有在一些文件中,有提到未來會在WCF中加入

然而,目前還沒有,所以找了一個github上的專案來替代,叫restup

https://github.com/tomkuijsten/restup

文件也很完整,還有提供範例程式,唯一的缺點就是還在beta階段
https://github.com/tomkuijsten/restup/wiki/Get-started-(REST)

先將專案設定為Headless模式,請參考上一篇(Headless app with Windows Universal App)

再來從Nuget安裝restup
在「套件管理器主控台」輸入
install-package restup -pre

由於此套件還在beta階段,最後一定要加上參數 -pre,否則會找不到套件喔


處理JSON可用Newtonsoft的Json.NET,一樣在NuGet安裝

接下來,
在已經建立好的StartupTask.cs中,修改程式碼
加入restup程式,

App加入Server的功能
在Package.appxmanifest中,直接點滑鼠左鍵開啟
在功能的Tab中,加入「網際網路(Server/Client)」、「私有網路(Server/Client)」 [這一項是為了debug啟用,否則在private network完全無法debug]

另外加入Controller資料夾,加入CommandController.cs,然後寫一些RESTful function,即完成

**注意:Controller的命名很重要,要搭配UriFormat的前置字,否則會一直出現Http 404 Error
這在文件中完全沒有提到,搞超久的
2016/6/25補充:還有另一點要注意的,就是在網址列的Keyword,大小寫也要相符才會有作用,否則會回傳bad request

Ex: 這邊的Controller為CommandController,所以在Method的路徑搭配上,就要以 /Command/為開頭








沒有留言: