API 和 RESTful 的区别?

class UserController extends Controller
{
    private $state_fail = 0;
    private $state_success = 1;
    private $img_url = 'http://xxx.cn/';

    public function __construct()
    {
        parent::__construct();
        $this->appUrl = "http://xxx.cn/" . I("server.HTTP_HOST");
        header('Content-Type: application/json; charset=utf-8');
        $code = I('code');
        if (!$code) {
            $code = I('get.code');
        }
        switch ($code) {
            case 1001:
                $this->register(); 
                break;
            case 1002:
                $this->Login();
                break;
            case 1003:
                $this->Forget()
                break;
            case 1004:
                $this->Rem_equip();
                break;
                default:
                break;
        }
    }

上面是同事使用 thinkphp3.* 写的接口,最近看到了 RESTful 这个概念,两个是同一个东西吗?如果不是,那么两个的区别,那种更好呢?谢谢!

ThinkPHP:是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架。
RESTful:一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
一个是具体已经实现的框架,另一个是一种设计思想,一个是实际,一个理论;当然理论最终也可以变为实际。

api和restfulapi其实都是接口,不同点有两个:
1、restful使用http code代表状态
2、resetful最重要的是资源思想,他之所以灵活,是因为他很少参与业务逻辑,只定义资源操作。

可以这么理解,restful是api的一个设计思想,通过这个思想可以设计出更为合理的、更加优雅的api。ps:看了这个代码,我想说,这压根就不是restful api。

显然不是同一个东西!!但狭义理解上来说我们有时候在跟客户端数据交互时通常把接口叫做API,但其实API的定义会更加广泛。比如我们在学习一个框架的时候,我们会看它的api文档,这时候API就不仅仅是数据相关的接口,而是对外提供的方法。

而restful是API实现的一种形式,最明显的特征就是在接口URL中,尽量用名词去代替动词来表述该接口的含义。 而用http提供的method方法来实现动词部分,GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

  • 京东上生成100万张优惠券算法问题
  • php Cli 模式下 msg_get_queue 运行报错,怎么解?
  • ios 开发 怎么和php后端服务器保持会话
  • phpmailer中CC和BCC是什么意思呢?
  • php openssl 函数不能用?
  • laravel中的Facades和Ioc Container怎么理解?
  • 我的 session.cookie_lifetime 命名设置的0 ,然而这个cookie的过期时间却是一年后?什么情况
  • 使用phpunit应该如何初始化数据库
  • AngularJS操作ng-show指令
  • 今天运行strftime("%G-%m-%d", time()) 的时候,会得到2015-12-31,这是为什么?
  • Thinkphp框架问题