[code language="cpp"]
GlobalConfiguration.Configuration.EnableSwagger(
c => {
// 取得 Swagger XML 產出的路徑(如設定已存在請反註解)
c.IncludeXmlComments(GetXmlCommentsPath());
});
[/code]
[code language="cpp"]
/// <summary>
/// 取得 Swagger XML 產出的路徑
/// </summary>
internal static string GetXmlCommentsPath()
{
return System.String.Format(@"{0}\App_Data\SwaggerXmlDoc.xml", System.AppDomain.CurrentDomain.BaseDirectory);
}
[/code]
[code language="cpp"]
/// <summary>
/// 產品 API 列表
/// </summary>
[RoutePrefix("api/Products")]
[SwaggerResponse(HttpStatusCode.OK, Description = "要求成功,回應要求結果。")]
[SwaggerResponse(HttpStatusCode.NoContent, Description = "成功處理要求,無回應任何結果。")]
[SwaggerResponse(HttpStatusCode.Unauthorized, Description = "驗證失敗,請確認 API Key 有效性。")]
[SwaggerResponse(HttpStatusCode.BadRequest, Description = "請確認 Uri 及相關 Parameters 是否正確。")]
public class ProductsController : ApiController
{
/// <summary>
/// 取得所有產品資料
/// </summary>
/// <param name="name">名稱</param>
/// <param name="desc">描述</param>
/// <remarks>可使用產品「名稱」與「描述」關鍵字查詢產品資料</remarks>
/// <returns>所有產品資料</returns>
[HttpGet]
public HttpResponseMessage Get(string name, string desc = null)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
/// <summary>
/// 取得指定產品資料
/// </summary>
/// <param name="id">指定產品編號</param>
/// <returns>指定產品資料</returns>
[HttpGet]
[SwaggerResponse(HttpStatusCode.OK, Description = "要求成功,回應要求結果。(客製)", Type = typeof(ProductModel.EditView))]
public HttpResponseMessage Get(int id)
{
return Request.CreateResponse(HttpStatusCode.OK, new ProductModel.EditView());
}
/// <summary>
/// 新增產品
/// </summary>
/// <param name="model">產品編輯模型</param>
/// <returns>新增產品結果</returns>
[HttpPost]
public HttpResponseMessage Post([FromBody]ProductModel.EditView model)
{
int insertedId = new Random().Next(int.MinValue, int.MaxValue);
return Request.CreateResponse(HttpStatusCode.OK, new { id = insertedId });
}
/// <summary>
/// 修改產品
/// </summary>
/// <param name="id">指定產品編號</param>
/// <param name="model">產品編輯模型</param>
/// <returns>修改產品結果</returns>
[HttpPut]
public HttpResponseMessage Put(int id, [FromBody]ProductModel.EditView model)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
/// <summary>
/// 刪除產品
/// </summary>
/// <param name="id">指定產品編號</param>
/// <returns>新增產品結果</returns>
[HttpDelete]
public HttpResponseMessage Delete(int id)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
/// <summary>
/// 取得產品進貨資訊
/// </summary>
/// <param name="id">指定產品編號</param>
/// <returns>產品進貨資訊</returns>
[HttpGet]
[Route("{id}/Purchase")]
public HttpResponseMessage GetPurchaseInfo(int id)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
}
[/code]