首页 新闻 搜索 专区 学院

MVC架构下如何将算法封装成web api

0
悬赏园豆:10 [已解决问题] 解决于 2016-12-09 17:05

由于项目需要,之前后端用MVC架构生成web api ,前端用node.js实现接口的调用。现在后端想将神经网络算法通过mvc架构调用matlab,实现算法封装成api。有点无从下手,还望有经验的前辈多多指点,菜鸟将不胜感激!!!!!!

问题补充:

具体说:我的问题就是如何在ASP.NET MVC web api 的控制器中添加matlab中提供的function函数,辛苦各位有经验之辈!

菜鸟B队的主页 菜鸟B队 | 初学一级 | 园豆:194
提问于:2016-12-07 11:21
< >
分享
最佳答案
0

后端用MVC架构生成web api ?你自己臆测是这样描述的还是有人跟你说的。。看不懂你在说什么。。

 

收获园豆:10
~扎克伯格 | 小虾三级 |园豆:1837 | 2016-12-07 14:16

routeTemplate: "api/{controller}/{id}"这不就是嘛

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-07 14:26

哦,应该是MVC架构和web api 结合使用

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-07 14:39

@菜鸟B队: 是的,Asp.Net MVC Web API框架自动生成的。你的需求:算法封装成api,我想问什么又叫算法封装成api。你的牛逼算法是不是也要通过function来让人调用进而起到作用?那就把你的算法扔到controller的function中,该给参数给参数,该给返回类型给返回类型,谈不上什么封装吧!哪里要用,调对应的url就ok。

~扎克伯格 | 园豆:1837 (小虾三级) | 2016-12-07 14:42

@菜鸟B队: http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html看个例子吧!

~扎克伯格 | 园豆:1837 (小虾三级) | 2016-12-07 14:43

@~扎克伯格: 恩,非常谢谢你,现在明白多了

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-07 15:10

@~扎克伯格: 我的算法要写在matlab中,您有没有推荐的文档书籍之类的可以参考呢?

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-07 15:11

@菜鸟B队: 这个没玩过。。。帮不上你了

~扎克伯格 | 园豆:1837 (小虾三级) | 2016-12-07 15:16

好的,谢谢您

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-07 15:17

@菜鸟B队:不客气的,你去百度C#调用matlab函数,应该有你想要的东西

~扎克伯格 | 园豆:1837 (小虾三级) | 2016-12-07 15:27

@~扎克伯格: 恩恩,好的。之前还做过点关于调用的,现在知识一杂糅就有点乱了。不过真的很谢谢你,查了几天资料没什么思路

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-07 15:33

做了个简单的测试成功了

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using test1;

using System.Web.Http.Cors;

namespace MvcDemo.Controllers
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class testController : ApiController
{
public double getsum (int x, int y)
{
sum lm = new sum();
MWArray a = x;
MWArray b = y;
//MWArray a = 1;
//MWArray b = 2;
MWArray c = lm.testAdd(a, b);
MWNumericArray temp = (MWNumericArray)c;
Array Output = temp.ToArray(MWArrayComponent.Real);//c#规范矩阵
double[ ,] location = (double[ ,])Output;
return location[0,0];
}
}
}

就是在controller的function中实现matlab函数的调用

这是matlab中的函数

function y=testAdd(a,b)
y=a+b;
end

生成动态链接库供C#调用即可

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-09 17:05

@菜鸟B队: 不错哦

~扎克伯格 | 园豆:1837 (小虾三级) | 2016-12-09 17:57

@~扎克伯格:问题重重,还望以后多多指教

菜鸟B队 | 园豆:194 (初学一级) | 2016-12-11 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册