创建基于RESTful的Web简单在线商店是否正常?

时间:2013-12-02 14:36:06

标签: asp.net-mvc rest design-patterns architecture

我设计了一个简单的在线商店。它有产品卡,产品列表,向产品添加评论的能力,用户注册,按价格搜索产品和其他标准。也许网上商店会有移动客户端(android和ios)。

我想尝试使用RESTful。使用RESTful创建这个商店是否正常?如果这是正常的,那么我有几个问题。

当我创建常用网站时,我会编写以下代码:

public ActionResult Index()
{
   var products = this.productRepository.GetAll();
   return View(products);
}

如果我使用RESTful,如何更改网站的体系结构。这个方法必须发送给客户端什么?只有HTML吗?然后客户端必须向api执行AJAX请求才能获取数据?

1 个答案:

答案 0 :(得分:1)

RESTful Web服务是一种基于HTTP的服务,任何与HTTP相关的应用程序都可以使用WebApi,WCF等实现它。 要构建在线商店项目,您当然可以使用WebApi构建RESTful Web服务。 很难说使用RESTful Web服务是否正常,您可以构建Web应用程序而无需构建RESTful Web服务。 它只取决于您的需求和喜好。

假设您正在使用WebApi为您的项目构建RESTful Web服务。 下面是一个示例,说明如何实现它。

WebApi控制器

public class ProductsController : ApiController
{
    public IEnumerable<Product> GetAllProducts() 
    {
        return this.productRepository.GetAll();
    }
}

MVC行动

示例1:从MVC操作调用Web API控制器操作

public ActionResult Index()
{ 
    var webApi = new ProductsController();
    return View(webApi.GetAllProducts());
}

示例2:通过使用Ajax调用Web API来填充视图中的所有产品

查看:

<div id="contents"></div>

JS档案

$(function() {
   showAllProducts();   
   function showAllProducts() {
        var url = "http://localhost:13131/api/Products/";
        $.getJSON(url, function(result) {
            $("#contents").append(result); // here you need do more than this.
        });
    }
});

实现Web API的方法取决于您的需求,有很多方法可以实现它。 对于您的项目,尝试不同的方法是很好的,您可以在此过程中了解更多相关信息。

希望它有所帮助。