当前位置:  开发笔记 > 前端 > 正文

RESTful API是否过度使用/误用?

如何解决《RESTfulAPI是否过度使用/误用?》经验,为你挑选了1个好方法。

我花了一整天时间阅读菲尔丁关于REST的着名论文.它在结论部分说:

REST,一种用于分布式超媒体系统的新颖架构风格....

虽然基于Web的应用程序可以包括对其他交互方式的访问,但其协议和性能问题的核心焦点是分布式超媒体.REST仅详细说明了体系结构中被认为是Internet规模分布式超媒体交互必不可少的部分.

根据维基百科:

超媒体是超文本一词的扩展,是一种非线性信息媒介,包括图形,音频,视频,纯文本和超链接.

所以在我看来,REST是有意义的web-based content-intensive system.但显然RESTful API已被buzzword用于几乎所有地方web service.

那么这种过度使用了吗?还是误用

参考文献:

RESTful API,最大的谎言.

RESTful编程究竟是什么?

在讨论Cookies时,菲尔丁着名的论文中"超媒体数据格式"是什么意思



1> CodeCaster..:

我认为JSON不是媒体而是文字或视频.所以从本质上讲,JSON中表示的序列化对象是一种媒介.

现在,"超媒体"是在语义上链接在一起的媒体.您可以通过包含链接:HAL或HATEAOS 制作JSON超媒体.

在此,您将相关资源的链接添加到JSON文档.示例:

{
    "content": [ {
        "price": 499.00,
        "description": "Apple tablet device",
        "name": "iPad",
        "links": [ {
            "rel": "self",
            "href": "http://localhost:8080/product/1"
        } ],
        "attributes": {
            "connector": "socket"
        }
    }, {
        "price": 49.00,
        "description": "Dock for iPhone/iPad",
        "name": "Dock",
        "links": [ {
            "rel": "self",
            "href": "http://localhost:8080/product/3"
        } ],
        "attributes": {
            "connector": "plug"
        }
    } ],
    "links": [ {
        "rel": "product.search",
        "href": "http://localhost:8080/product/search"
    } ]
}   

人们争辩说,没有链接,JSON不是超媒体.

我也不想尝试将每个API都塞进REST中.并非每个API都与资源有关,因此如果您的API代表RPC,请将其称为RPC:RPC API.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有