文章分類
.NET 5
.NET Core
.NET FrameWork
3C
工作室佈告欄
心理探討
專案測試
軟體工程
開發流程
Agile
Algorithm
ALM
Android SDK
Angular
AngularJS
Architecture
ASP.NET
ASP.NET Core
Books
Bower
C#
C# (Extensions)
ChatBot
CLOUD
Comic
CSS
Dapper
Design Pattern
DevOps
Django
Docker
Domain Driven Design
Entity framework
EXCEL
Financial Derivatives
Firebase
Flask
Front-end
GIT
GitHub
Golang
GraphQL
Gulp
Identity Server
IIS
javascript
jQuery
Keyboard
L-I-F-E
LetsEncrypt
LINQ
LINUX
MongoDB
Multi-Thread
Nuget
Open Source
Oracle
OS
Performance issue
PostgreSQL
Project Management
Python
RabbitMQ
Redis
Redux
RxJS
SAP TM
Scrum
SEO
Sharepoint
Sql Server
SSRS
Study
Swagger
Team Foundation Server
TensorFlow
Testing
Toolkits
Tricking
Trouble Shooting
UML
Unit Test
Vim
Visual Studio
Visual SVN Server
VSCODE
Vue
Web Api
Web Service
WebStorm
Windows Application
WSL
2012年9月28日 星期五
2012年9月10日 星期一
[UML] 案例圖範例一
今天參考書上畫的案例圖,來做一些筆記:
1. Customer 可以做為 Member 一般化的父角色。 因為Customer連接的所有案例,Member也會用到。
2. Provide Suggestion(顧客意見) 和 Order (下訂單) 如果在未登入的情況下,會<<extend>> 出 Login這個案例。 Order (下訂單) 如果在非會員的情況下,會<<extend>> "Join as a member"案例。
3. Order (下訂單)和Modify member info (修改會員資料) 一定會引發Send confirmed Email這個案例。 所以要使用 <<include>>這個關係。
4. 角色可以是 人, 時間, 系統 ... 等實體或非實體,有點像是觸發事件的Trigger。
[MVC4] 建立第一支Web Api
[MVC4] 建立第一支Web Api
作者 : JB
作者 : JB
1. 請先下載安裝ASP.NET MVC4
http://www.microsoft.com/zh-tw/download/details.aspx?id=30683
(此連結的下載是For Visual Studio 2010)
http://www.microsoft.com/zh-tw/download/details.aspx?id=30683
(此連結的下載是For Visual Studio 2010)
2. 以下以Visaul Studio 2010為範例。
開新專案:
【Web】→【ASP.NET MVC 4 Web Application】
會跳出以下這個畫面,選擇Web API,然後可選擇要不要建立單元測試專案。
開新專案:
【Web】→【ASP.NET MVC 4 Web Application】
會跳出以下這個畫面,選擇Web API,然後可選擇要不要建立單元測試專案。
3. 建立好之後,可看到方案總管,的確跟一般MVC專案一樣有Model, View, Control。 不過因為基本上不會動到View J
4. 打開Control資料夾下面的「ValuesController.cs」
可看到裡面定義了四個Restful Service的方法
可看到裡面定義了四個Restful Service的方法
// GET api/values public IEnumerable< string > Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } // POST api/values public void Post([FromBody]string value) { } // PUT api/values/5 public void Put(int id, [FromBody]string value) { } // DELETE api/values/5 public void Delete(int id) { }
5. 接著我們來看定義routes的地方,開啟App_Start資料夾下面的WebApiConfig.cs
會看到以下的程式碼
會看到以下的程式碼
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute( name: "DefaultApi",
config.Routes.MapHttpRoute( name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
很清楚的可以看到routes定義為 api/{controller}/{id}{controller} : 你的Control名稱{id} : 帶入的值(參數),而id = RouteParameter.Optional 則定義此欄位為非必要。
7. 測試GET方法 …
在網址後面加上 http://localhost:XXXX/api/values
瀏覽器應該會問你要不要下載檔案,這個就是Web API回傳回來的JSON資料,打開這個檔案會看到
["value1","value2"]
下圖是用Fiddler看的結果
備註:如果我們要讓使用者在GET方法時,動態選擇取得的response格式為XML或JSON,做法如下:
打開Global.asax.cs,在Application_Start方法中加入下列紅色的程式碼。
PS.必須參考 using System.Net.Http.Formatting
在網址後面加上 http://localhost:XXXX/api/values
瀏覽器應該會問你要不要下載檔案,這個就是Web API回傳回來的JSON資料,打開這個檔案會看到
["value1","value2"]
下圖是用Fiddler看的結果
備註:如果我們要讓使用者在GET方法時,動態選擇取得的response格式為XML或JSON,做法如下:
打開Global.asax.cs,在Application_Start方法中加入下列紅色的程式碼。
PS.必須參考 using System.Net.Http.Formatting
//設定一個URL的新參數
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));
//設定一個URL的新參數
GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping("xml", "true", "text/xml"));
這兩行表示我們可以在URL中加入json和xml兩個參數,來設定是否開啟json/xml回傳格式。
所以預設回傳json格式的URL可以改打
http://localhost:63435/api/values?id=10&json=true
如果要拿到xml格式,就改打以下網址…
http://localhost:63435/api/values?id=10&xml=true
這兩行表示我們可以在URL中加入json和xml兩個參數,來設定是否開啟json/xml回傳格式。
所以預設回傳json格式的URL可以改打
http://localhost:63435/api/values?id=10&json=true
如果要拿到xml格式,就改打以下網址…
http://localhost:63435/api/values?id=10&xml=true
8. 測試POST方法 …
新增一個類別 CItem,裡面放兩個String變數value1、value2
然後修改 POST函式:
// POST api/values
新增一個類別 CItem,裡面放兩個String變數value1、value2
然後修改 POST函式:
// POST api/values
public CItem Post()
{
CItem myItem = new CItem();
myItem.value1 = "HI";
myItem.value2 = "HELLO";
return myItem;
訂閱:
文章 (Atom)