[Day 13] C#改造程序码( Func<T, TResult> )教学(下)

昨天稍微看了一下范例程序码是如何包装API的input+output参数型别
今天就来继续改造原本的code吧!


小小补充:

这边回过头来解释一下在C#(物件导向程序语言)中,Model 的概念好了。看看微软官方是怎麽说的:

「模型」 是代表您应用程序中资料的物件。 ASP.NET Web API 可以自动将您的模型序列化为 JSON、XML 或其他格式,然後将序列化资料写入 HTTP 回应讯息的本文中。 只要用户端可以读取序列化格式,它就可以还原序列化物件。 大部分的用户端都可以剖析 XML 或 JSON。 此外,用户端可以藉由设定 HTTP 要求讯息中的 Accept 标头,来指出所要的格式。

早期开发并没有建立「模型」的概念,因此如果在没有建立Model的情况下要串接这个永丰金流API,光要定义传入跟传出的参数可能就会把自己搞鼠吧!/images/emoticon/emoticon16.gif
自从能引用Model後并建立控制器(controller)范本後,我们就可以直接将函式回传定义为IEnumerable<>类型,真的是福音!
(os:最近写ASP.NET没有model真的很想哭阿...)


回头来看API

那麽,原先的方法:

public async Task<BaseResponseModel> OrderCreateAsync(OrderCreateRequestModel request)

就能再更弹性的指定要使用哪个APIService(Enum)了~

public async Task<TResult> OrderCreateAsync<TReq, TResult>(TReq request, APIService apiService) where TReq : BaseRequestModel

希望读者看了能有收获
See you tomorrow!


<<:  第二十二天:试写 Gradle Plugin

>>:  D26 第十三周 (回忆篇)

如何申请免费 Let’s Encrypt SSL 自动更新凭证,自架 IIS 站台适用

Https 连线网页使用 SSL 加密凭证可以让使用者在网页输入的资料更加安全,减少被截取内容的风险...

[Day33] Hexo x NexT - 显示最新文章、导入Google Analytics 的坑

先前使用 Hueman 的主题,但是有些 plugin 还需要花时间研究才能加进去,後来决定用许多人...

[笔记]vue-cli i18n 多语系应用练习

参考文章: https://medium.com/easons-murmuring/%E5%9C%A...

Day 30 Sniffing & Spoofing 监听与欺骗 (macchanger)

今天要体验的工具是macchanger,从介绍就一目了然其用途是拿来进行MAC地址欺骗,可以暂时修改...

[CSS] Flex/Grid Layout Modules, part 7

我们继续来深入关於 Grid 容器的相关样式设定。虽然目前 CSS 框架在多数情况下并不需要特别在意...