Heim  >  Artikel  >  Backend-Entwicklung  >  javascript - 如何设计只提供api的后台?

javascript - 如何设计只提供api的后台?

WBOY
WBOYOriginal
2016-07-06 13:53:291003Durchsuche

例如,前端用了react或者vue等框架,我只想通过ajax在后台获取相应的数据,我应该怎么做呢?或者说后台如何选择?我之前用Django写过一些类似的,但是感觉还是无法脱离Django自己提供的视图。

回复内容:

例如,前端用了react或者vue等框架,我只想通过ajax在后台获取相应的数据,我应该怎么做呢?或者说后台如何选择?我之前用Django写过一些类似的,但是感觉还是无法脱离Django自己提供的视图。

http://www.django-rest-framework.org/

1.首先,后台语言的选择不重要,什么语言都可以实现,关键看你熟悉什么语言,你熟悉哪一门语言,上手就比较快。
2.你要做的效果应该是前后台分离。后台提供API,API返回前台需要的数据格式,前台通过API获取数据。前台自己渲染页面。
3.因为我是做PHP的,所以我建议后台使用PHP来搭建。后台采用MVC分离。由于后台只提供API,V可以省略。首先建议你选择支持可配置路由的框架,然后M操作数据库,从后台获取数据,C将数据转换成json格式往前台传。你需要做的工作就是按照框架的规则配置路由,然后写Controller代码和Model代码就好了。框架有ThinkPHP或Laravel等。

基于你前端的经验,不用去尝试Java/PHP/golang 这些后端语言,直接用nodejs即可,JavaScript你也擅长,并且node也很强大。如果简单的api直接node的http模块,如果复杂就用express http://expressjs.com/en/starter/installing.html
可以直接返回json/jsonp对象

<code>res.json(null);
res.json({ user: 'tobi' });
res.status(500).json({ error: 'message' });</code>

没用过Django,不过觉得Dj肯定支持返回json这种视图,简单搜索了一下关键字 Django json view:

http://stackoverflow.com/questions/9262278/django-view-returning-json-without-using-template

应该能满足你要的。

用@hsfzxjy 说的

改变 Django 的视图返回很简单啊, 如果需要做数据接口自己写个 Mixin 然后混入就可以了,可以看看这个例子:JsonResponseMixin

就是复写 Django 类视图的 render_to_response 方法,让他返回 json 或者其他数据。使用的时候这样写就可以:

<code class="python">    class TestView(JsonResponseMixin, DetailView):
        ...</code>

最近在入Lumen的坑,你可以试试一下这个基于Laravel的优雅解决方案。

我觉得你要用Reactjs再加restful api,那么前端的展现就不应该用MVC了,而应该是fluxjavascript - 如何设计只提供api的后台?
我的flux框架用的altjs,严格遵循flux的流程,而且react模块化特性也很好发挥了出来,参见: http://alt.js.org

至于restful api看你自己怎么选择了,各种语言各种框架都有.

返回json即可。
我的话现在用Yii2的restful提供标准API供前端访问(IOS,ANDROID,WEB)

不要template, 直接views里面HttpResponse返回json数据不就行了么

Django 只给一个div 让 react mount

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn