Basic
.Net Core part
-
開啟 Web Api 專案
-
修改 Startup.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace WebApi
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseMvc(routes =>
{
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
app.UseHttpsRedirection();
}
}
} -
新增 HomeController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32using Microsoft.AspNetCore.Mvc;
namespace WebApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class HomeController : ControllerBase
{
public IActionResult Get()
{
return Ok("Get Success");
}
[HttpPost]
public IActionResult Post()
{
return Ok("Post Success");
}
[HttpPut]
public IActionResult Put()
{
return Ok("Put Success");
}
[HttpDelete]
public IActionResult Delete()
{
return Ok("Delete Success");
}
}
}
Postman part
-
Close SSL certificate verification
-
Get
-
Post
-
Put
-
Delete
Route Attribute
.Net Core part
-
新增 Message.cs
1
2
3
4
5
6
7
8namespace WebApi.Models
{
public class Message
{
public string Message1 { get; set; }
public string Message2 { get; set; }
}
} -
新增 RouteAttributeController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50using Microsoft.AspNetCore.Mvc;
using WebApi.Models;
namespace WebApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class RouteAttributeController : ControllerBase
{
[Route("Index")]
public IActionResult MyIndex()
{
return Ok("Index Success");
}
[Route("Index/{id:int}/{firstName")]
public IActionResult MyIndex(int id)
{
return Ok($"Index {id} Success");
}
[Route("About")]
[HttpPost]
public IActionResult MyAbout()
{
return Ok("About Success");
}
[Route("About/{id:int}")]
[HttpPost]
public IActionResult MyAbout(int id)
{
return Ok($"About {id} Success");
}
[Route("ContactSingle")]
[HttpPost]
public IActionResult MyContact([FromBody]string message)
{
return Ok($"Contact {message} Success");
}
[Route("ContactClass")]
[HttpPost]
public IActionResult MyContact([FromBody]Message msg)
{
return Ok($"Contact {msg.Message1} {msg.Message2} Success");
}
}
}
Postman part
-
Get Route(“Index”)
-
Get [Route(“Index/{id:int}”)]
-
Post [Route(“About”)]
-
Post [Route(“About/{id:int}”)]
-
Post [Route(“ContactSingle”)] FromBody
-
Post [Route(“ContactClass”)] FromBody
Http Verb
.Net Core part
- 新增 HttpVerbController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using WebApi.Models;
namespace WebApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class HttpVerbController : ControllerBase
{
private List<Message> messages = new List<Message>
{
new Message { Message1 = "Message11", Message2 = "Message12" },
new Message { Message1 = "Message21", Message2 = "Message22" },
new Message { Message1 = "Message31", Message2 = "Message32" },
new Message { Message1 = "Message41", Message2 = "Message42" },
new Message { Message1 = "Message51", Message2 = "Message52" }
};
[HttpGet("getMessage")]
public IActionResult GetListMessages()
{
return Ok(this.messages);
}
[HttpGet("getMessage/{id}")]
public IActionResult GetListMessages(int id)
{
return Ok(this.messages.Where(o => o.Message2.Contains(id.ToString())).ToList());
}
[HttpPost("postMessage")]
public IActionResult PostListMessages()
{
return Ok(this.messages);
}
[HttpPost("postMessage/{id}")]
public IActionResult PostListMessages(int id)
{
return Ok(this.messages.Where(o => o.Message2.Contains(id.ToString())).ToList());
}
[HttpPost("postMessageSingleBody")]
public IActionResult PostListMessages([FromBody]string message)
{
return Ok(this.messages.Where(o => o.Message2 == message).ToList());
}
[HttpPost("postMessageClassBody")]
public IActionResult PostListMessages([FromBody]Message msg)
{
return Ok(this.messages.Where(o => o.Message2 == msg.Message2).ToList());
}
}
}
Postman part
-
Get [HttpGet(“getMessage”)]
-
Get [HttpGet(“getMessage/{id}”)]
-
Post [HttpPost(“postMessage”)]
-
Post [HttpPost(“postMessage/{id}”)]
-
Post [HttpPost(“postMessageSingleBody”)] FromBody
-
Post [HttpPost(“postMessageClassBody”)] FromBody
Http Response Type
.Net Core part
- 新增 ResponseTypeController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23using Microsoft.AspNetCore.Mvc;
namespace WebApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ResponseTypeController : ControllerBase
{
[HttpGet("getResponse/{id}")]
public IActionResult GetResponse(int id)
{
switch (id)
{
case 1:
return Ok("Success");
case 2:
return BadRequest("BadRequest");
default:
return NotFound("NotFound");
}
}
}
}
Postman part
-
Status 200 Ok
-
Status 400 Bad Request
-
Status 404 Not Found
近期评论