.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现

 

前言

上篇《

资源

抽象的说他可以是音频、也可以是视频,更可以是订单。更俗讲其实就是实体,更接近我们平常说的“类(class)”。另外REST强调资源有唯一的URI。下面有对比

动作

主要动作:

表述

对于Request与Response的自描述,而表述方式有多种:XML、JSON等,强调HTTP通信的语义可见性。

对比

RPC

SMSApi.com/api/GetSMS

SMSApi.com/api/CreateSMS

传统的接口设计面向过程的,每个动作有特定的URI。

REST

SMSApi.com/api/SMS  GET

SMSApi.com/api/SMS  POST

REST API每个资源只有唯一的URI,而资源可以有不同的动作执行相应的接口

 

RPC的更加倾向于面向过程,而RESTful则以面向对象的思想进行设计。

接口定义

回到我们的短信服务,以上面的三特点进行出发,SMS不需要由外部服务进行删除、修改资源因此:

资源:SMS

动作:GET、POST

表述方式:我们约定Request、Response为JSON格式

复制代码
 /// <summary>    /// 短信接口     /// </summary>    [Route("api/[controller]")]     [ApiController]     public class SmsController : ControllerBase     {         private readonly SmsService _smsService;         private readonly IBus _bus;          public SmsController(SmsService smsService, IBus bus)         {             _smsService = smsService;             _bus = bus;         }          /// <summary>        /// 获取一条短信记录         /// </summary>        /// <param name="id">主键</param>        /// <returns></returns>        [HttpGet("{id}")]         public ActionResult<SmsModel> Get(string id)         {             if (string.IsNullOrEmpty(id))                 return NotFound();              var smsService = _smsService.Get(id);             return smsService.Sms;         }          /// <summary>        /// 发送短信         /// </summary>        /// <param name="model"></param>        /// <returns></returns>        [HttpPost]         public ActionResult Post([FromBody] List<PostModel> model)         {             _smsService.Add(model.MapTo<List<PostModel>, List<AddSmsModel>>());              _smsService.SmsList.Where(a => a.TimeSendDateTime == 
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信