小沙河水库,瓦塔西瓦塔,王印桐
做为一个程序员可能在学习技术,了解行业新动态,解决问题时经常需要英文的内容;而像我这样的英文小白就只能借助翻译工具才能理解个大概;不禁经常感慨,英文对学习计算机相关知识太重要了!最近发现ibm的云平台blumemix,并且提供语言翻译的服务,感觉不错,就拿来研究学习一下;这里就分享一下我的研究学习过程,如何使用asp.net5调用rest api打造自己的在线翻译工具,并演示如何把它发布到云平台上,让每个人都可以通过网络访问使用它。
对 html(超文本标记语言)的基本了解;
对css (层叠样式表)的基本了解;
对javascript(一种直译式脚本语言)的基本了解;
对asp.net5 的基本了解;
对restful api的基本了解;
我提供了所有必要代码,但对这些技术的基本了解有助于您理解有关的细节。
可以通过单击bluemix用户界面中应用程序“概述”上的添加服务或 api,将服务添加到应用程序中。也可以使用 cf 命令行界面。请参阅。 在服务列表中选择语言翻译(language translation) 您可以指定服务的名称,也可以使用默认的;
获取服务信息
进入自己的应用程序》概述页面,找到已经添加的服务,点击“显示凭证”,可以查看服务的具体信息:
在中访问服务url如下图:
有关开发环境搭建的细节,请参考下面的文章:
后台主要代码:valuescontroller.cs,与翻译服务web service交互
创建方法请参考:《asp.net5》web api controller class学习
using system; using system.collections.generic; using system.linq; using system.threading.tasks; using system.net; using microsoft.aspnet.mvc; using system.text; // for more information on enabling web api for empty projects, visit http://go.microsoft.com/fwlink/?linkid=397860 namespace dotnethelloworld.controllers { [route("api/[controller]")] public class valuescontroller : controller { // get: api/values [httpget] public ienumerable get() { return new string[] { "value1", "value2" }; } // get api/values/txt [httpget("{txt}")] public async task get(string txt) { string retstring = txt; try { //构造url,source为要翻译文本的语言,target指定要翻译为什么语言 string uri = "https://gateway.watsonplatform.net/language-translation/api/v2/translate?"; uri += "source=en&target=es&text=" + txt;
system.net.http.httpclient httpclient = new system.net.http.httpclient(); //将服务凭证转换为base64编码格式 byte[] auth = encoding.utf8.getbytes("用户名:密码"); //对应上面获取服务信息的语言翻译服务凭证中的用户名和密码 string auth64 = convert.tobase64string(auth); //创建并指定服务凭证,认证方案为basic httpclient.defaultrequestheaders.authorization = new system.net.http.headers.authenticationheadervalue("basic", auth64); retstring = await httpclient.getstringasync(uri); return "{\"text\":\"" + retstring + "\"}"; } catch (exception ex) { return ex.message; //throw ex; } } // post api/values [httppost] public void post([frombody]string value) { } // put api/values/5 [httpput("{id}")] public void put(int id, [frombody]string value) { } // delete api/values/5 [httpdelete("{id}")] public void delete(int id) { } } }你可能会注意到代码中有两个关键字:async和await,.net中引入了async和await关键字(vb为async和await)来简化异步调用的编程模式,这使异步调用变得更加简单。
1、保存修改过的文件
2、按下f5键,或使用debug菜单
启动调试后会自动打开浏览器窗口:
登录到bluemix?后,可以使用cf push命令来上传应用程序。
cf login -u ivu4e@qq.com -o ivu4e@qq.com -s ivu4e
4、发出cf push命令时,cf命令行界面将提供使用 buildpack 来构建并运行应用程序的bluemix环境的工作目录。
cf push命令上传应用程序并将其部署到bluemix。有关cf push的更多信息,请参阅。有关 buildpack 的信息,请参阅使用社区 buildpack。
如果更改了应用程序,可以通过再次输入cf push命令来上传这些更改。cf命令行界面会使用您先前的选项以及您对提示的响应来通过新的代码段更新应用程序的任何运行中实例。通过仪表板进入您刚刚创建的应用页面,点击左侧的开始编码,右侧顶部会显示:您的应用程序正在运行。
点击后面的链接访问刚刚发布的应用。
通过ibm的bluemix云平台,我们可以轻松的将自己的应用共享到网络上;
创建web应用之后会自动获得一个用来访问应用的二级域名;
通过应用程序概述中的应用程序运行状况,可以方便的查看和管理应用运行状态;
这里通过一个小例子展示如何将自己的应用发布到ibm的bluemix云平台上,
如何与ibm云平台上提供的语言翻译服务交互。
如果您有更好的应用或想法,试试通过ibm的bluemix云平台共享出来吧。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论