zoukankan      html  css  js  c++  java
  • 关于API,前后端分离

    之前再开放新型web项目和app时,遇到了和前后端交互的问题。总所周知的是,web前后端交接时,最重要的交互方式的接口的制定。

    而关于接口的规定,衍生出了一大堆问题,第一是关于空值的制定,是不输出呢?还是输出null,还是输出""

    今天在调试1688开放平台时,1688开放平台那边出了两套接口API给我们调,一套是旧的,用关键字deprecated标志过时,而一套是新的,因为是最近才推出的吧。

    有点坑的是,新接口虽然变得简洁了,但是一些老接口里面有的字段没有返回给我,对于新接口缺失字段这种事情,我也很无奈,阿里巴巴开放平台的文档真的也是写得一般般啊。

    然后楷哥说去阿里巴巴的官方,看它官方是用什么老接口还是旧接口,我们照着玩就可以了。

    所以我就用chrome按F12去抓包了,挺无聊也挺没效率的,以后应该会有更优的办法吧。

    在分析阿里巴巴官方的html页面中,我发现他们的json数据都是写在html里面的。挺有趣的,如果把json写在一个html里面,那么前端的访问地址就会变成只有一个。而后台这边json我就可以随意地写在html代码里面了,

    虽然这种方式让html代码显得很脏,但是似乎挺符合设计模式的“开闭原则”,只需要后台改动就可以了吧。

    引申到APP开发这边,app那边只需要访问*.json,然后我后台把json的代码分模块化地发给android或者ios

    {
         banner:{},
         ObjectList:[],
         extraData:{}
    }

    最后再说一下,1688那边似乎是用老接口的字段来实现一些东西。

    接口的设计,设置前台传给我的json格式是

    requestParams{}

    而我返回给后台的模式是:

    responseBody

    {       "meta":{},

            "data":{}

    }

    具体的api规则

    查看数据  product/{id}     verb = "get"

    删除数据   product/{id}     verb = "delete"

    修改数据 product/{id}      verb = "put"

    增加数据 product/{id}      verb = "post"

    在前后端整合的过程中,一定会碰到修改接口的情况,修改接口是一种很恶心的行为,会造成大量代码的修改。因为接口是契约,契约更改了,代码世界便乱了。用设计模式的拓展和封闭来讲,就是已经写过的接口不会更改,需要新数据则新增一个接口。

    只要不动用到底层数据库的修改,其实改动量都不会很大。

    设计模式是拥抱变化的。把不变的东西封装好,把可变的变成用户输入,这便是设计模式应该学习的,比如用{path}来代替之前的constant里面的常量

  • 相关阅读:
    Bareword "mp4" not allowed while "strict subs" in use at (usersupplied code). ubuntu
    linux系统中如何删除空行
    linux系统中comm命令的用法
    Package libxml2.0 was not found in the pkgconfig search path
    ubuntu qt.qpa.xcb: could not connect to display
    R语言中管道运算符 %>%
    R语言中setdiff、intersect、union函数
    poly 定点于mesh定点的法线对其,非开做比较好,要是来回转很费时间, 界面还打伤元气
    rollout floater 界面的加减。
    看了脚本后才知道是怎么把三边转四边。
  • 原文地址:https://www.cnblogs.com/sundaymorning/p/7498226.html
Copyright © 2011-2022 走看看