首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RESTful API 设计最佳实践

    使用四种HTTP方法POST,GET,PUT,DELETE可以提供CRUD功能(创建,获取,更新,删除)。 获取:使用GET方法获取资源。GET请求从不改变资源的状态。无副作用。GET方法是幂等的。.../v1/employees 你不需要使用次级版本号(“v1.2”),因为你不应该频繁的去发布API版本。 提供分页信息 一次性返回数据库所有资源不是一个好主意。因此,需要提供分页机制。...通常使用数据库中众所周知的参数offset和limit。 /employees?offset=30&limit=15 #返回30 到 45的员工 如果客户端没有传这些参数,则应使用默认值。...如果数据库检索很慢,应当减小 limit值。 /employees #返回0 到 10的员工 此外,如果您使用分页,客户端需要知道资源总数。...另一个好处是,你的API变得可以自我描述,需要写的文档更少。 在分页时,您还可以添加获取下一页或上一页的链接示例。只需提供适当的偏移和限制的链接示例。 GET /employees?

    1.8K10

    RESTful API 设计最佳实践

    使用四种HTTP方法POST,GET,PUT,DELETE可以提供CRUD功能(创建,获取,更新,删除)。 获取:使用GET方法获取资源。GET请求从不改变资源的状态。GET方法具有只读的含义。.../v1/employees 你不需要使用次级版本号(“v1.2”),因为你不应该频繁的去发布API版本。 提供分页信息 一次性返回数据库所有资源不是一个好主意。因此,需要提供分页机制。...通常使用数据库中众所周知的参数offset和limit。 /employees?offset=30&limit=15 #返回30到45的员工 如果客户端没有传这些参数,则应使用默认值。...如果数据库检索很慢,应当减小limit值。 /employees #返回0到10的员工 此外,如果您使用分页,客户端需要知道资源总数。...另一个好处是,你的API变得可以自我描述,需要写的文档更少。 在分页时,您还可以添加获取下一页或上一页的链接示例。只需提供适当的偏移和限制的链接示例。 GET /employees?

    1.9K60

    好 RESTful API 的设计原则

    还有两个不常用的HTTP动词: HEAD : 获取一个资源的元数据,如数据的哈希值或最后的更新时间。 OPTIONS:获取客户端能对资源做什么操作的信息。...有很多的原因显示API跟踪分析是一个好主意,例如,对那些使用最广泛的API来说效率是最重要的。 第三方开发者通常会关注API的构建目的,其中最重要的一个目的是你决定什么时候不再支持某个版本。...://api.example.com/v1/animals https://api.example.com/v1/animal_types https://api.example.com/v1/employees...作为沟通方式这没什么问题,但是如果你真要写到API文档中,那就必须包含完整的路径(如,GET http://api.example.com/v1/animal_type/ATID)。...Example HTTP Request POST /v1/animal HTTP/1.1Host: api.example.orgAccept: application/jsonContent-Type

    1.3K20

    什么是RESETful API 设计规范?

    所以 应该 为其提供版本支持 目前比较常见的两种版本号形式: 在 URL 中嵌入版本编号,这种做法是版本号直观、易于调试 api.example.com/v1/* 另一种做法是,将版本号放在 HTTP.../zoos/{zoo}/animals https://api.example.com/animal_types https://api.example.com/employees HTTP 动词 对于资源的具体操作类型...其中 删除资源 必须 用 DELETE 方法 创建新的资源 必须 使用 POST 方法 更新资源 应该 使用 PUT 方法 获取资源信息 必须 使用 GET 方法 还有两个不常用的HTTP动词 HEAD...:获取资源的元数据 OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的 下面是一些例子: 请求方法 URL 描述 GET /zoos 列出所有的动物园(ID和名称,不要太详细) POST /..., } 下表列举了常见的 HTTP 状态码 状态码 描述 1xx 代表请求已被接受,需要继续处理 2xx 请求已成功,请求所希望的响应头或数据体将随此响应返回 3xx 重定向 4xx 客户端原因引起的错误

    3.6K20

    RESTful规范

    zoo=1&area=3 ; 二、   版本 应该将API的版本号放入到URI中 https://api.example.com/v1/zoos 三、 Request HTTP方法 通过标准HTTP方法对资源...HEAD:获取资源的元数据 OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的 PATCH:在服务器更新资源(客户端提供改变的属性) 安全性和幂等性 1.     ...状态码的完全列表参见这里 URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API,返回404 not found 或 410 gone;对迁移的API,返回 301重定向。...各HTTP方法成功处理后的数据格式: · response 格式 GET 单个对象、集合 POST 新增成功的对象 PUT/PATCH 更新成功的对象 DELETE 空 五、错误处理 1.     ...常用的http状态码及使用场景: 状态码 使用场景 400 bad request 常用在参数校验 401 unauthorized 未经验证的用户,常见于未登录。

    2.5K00

    万万没想到react请求数据花样如此之多

    说来说去,说简单点,一个web应用,应该是状态驱动的,而状态=数据+逻辑所以,我们的UI=Render(Data+Logic) 那么,Data从何而来,可以说99%的web应用的Data是从网络而已,俗称网络获取数据...下面的代码段是一个很简单的显示列表数据模板,很简单,这里只用到了useState这个Hook,如果需要填充数据,很明显,使用setData给到数据就可以了,数据从何而来,这是一个问题,带到今天来看,要讲的是如何从网络获取数据... ); } export default App; 不过很快就会就想到,网络请求需要传递参数 所以,你加了一个query的useState,而且仅仅当query变化时触发重新获取网络数据...://hn.algolia.com/api/v1/search?...://hn.algolia.com/api/v1/search?

    1.6K81

    前端跨局域网访问后端API的常见问题与解决方案

    :8000/", // 硬编码后端IP timeout: 10000 }); 在本机(192.168.1.30)上运行时,一切正常。...前端开发服务器代理未正确配置 如果使用Vue/React的开发服务器(如webpack-dev-server),可能需要代理API请求,否则会因跨域问题导致请求失败。...解决方案 方案1:动态获取主机IP(推荐) 我们可以让前端自动获取当前访问的hostname,并动态构造API地址: const baseUrl = `${window.location.protocol...=http://localhost:8000 .env.production: VUE_APP_API_BASE_URL=/api (2)在代码中使用环境变量 const baseUrl = process.env.VUE_APP_API_BASE_URL...方案3:配置开发服务器代理(适用于Vue/React) 如果使用Vue CLI或React的webpack-dev-server,可以配置代理,避免跨域问题。

    62310

    基于 ChatGPT API 的划词翻译浏览器脚本实现

    可以使用 AJAX 请求从后台获取翻译结果并将其显示在 DIV 元素中。...使用 antd 的 Popover 组件来显示,使用 react 重构下 js 代码,我们就可以实现如下效果。 点击翻译按钮,就会通过接口请求,将翻译结果显示在下方。...发送了一个 HTTP 请求,并在响应中获取了一个可读流。...我们可以使用 getReader 方法获取一个读取器对象,并使用它来处理流数据,使用了 eventsource-parser这个包来解析服务器推送(Server-sent events)的数据。...小结 本文介绍了如何实现划词翻译的基本功能,包括使用 OpenAI 提供的接口进行翻译、在 HTML 页面中添加触发翻译的按钮和鼠标抬起事件监听事件、使用 AJAX 请求从接口获取翻译结果并将其显示在

    2.1K30

    Oracle数据库之第一篇

    11  虚拟网卡设置 本机和虚拟机之间能相互访问,它们的IP 段必须相同,但是本机将会连接不同的网络 环境(比如教室、宿舍、家庭),那么本机的IP 段会产生变化就连不上虚拟机了,为了避...获取字符串的长度 length('hello') 4....日期和字符的转换 转换数值 to_number('123') 转换字符 to_char(v1,v2) v1是被转换的数据v2是转换后的格式 转换日期 to_date(v1,...sysdate 给系统增加时间 add_months(v1,v2) v1是时间,v2是增加的月数 获取系统时间间隔的月数 months_between(v1,v2) 两个参数都是日期...oracle 有个特有条件表达式 decode(v1,v2,v3) v1是被判断的列,v2是等于值,v3是显示值 select decode(job,'MANAGER','经理','PRESIDENT

    4K10

    Django Rest Framewor

    ,获得这些表征致使这些应用转变状态 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性 对于REST这种面向资源的架构风格,...路径,视网络上任何东西都是资源,均使用名词表示(可复数) https://api.example.com/v1/zoos https://api.example.com/v1/animals https...://api.example.com/v1/employees method GET      :从服务器取出资源(一项或多项) POST    :在服务器新建一个资源 PUT      :在服务器更新资源...limit=10:指定返回记录的数量 https://api.example.com/v1/zoos?...offset=10:指定返回记录的开始位置 https://api.example.com/v1/zoos?

    1.8K20

    2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(三)

    Roy Fielding 的这一陈述可能会进一步为REST和RPC之间的区别提供线索:我对将任何基于 HTTP 的接口称为 REST API 的人数感到沮丧。...在万维网之前,其他文档系统会呈现信息或链接,但正是将文档与这种关系元数据链接在一起,才将网络缝合在一起。Roy Fielding 鼓励使用使 Web 成功的相同技术构建 API,链接就是其中之一。...": {"href": "http://localhost:8080/employees"}}}这个解压缩的输出不仅显示了您之前看到的数据元素(id和name)role,而且还显示了一个_links包含两个...HAL 是一种轻量级媒体类型,它不仅可以编码数据,还可以编码超媒体控件,提醒消费者注意他们可以导航的 API 的其他部分。...不讲 HAL 的客户端可以在使用纯数据时忽略额外的位。使用 HAL 的客户可以浏览您授权的 API。但这并不是使用 Spring 构建真正的 RESTful 服务所需的唯一内容。......

    1.4K30

    Django Rest Framework-介绍

    ,获得这些表征致使这些应用转变状态 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性 对于REST这种面向资源的架构风格...api.example.com/v1/ 请求头 跨域时,引发发送多次请求 路径,视网络上任何东西都是资源,均使用名词表示(可复数) https://api.example.com/v1/zoos https...://api.example.com/v1/animals https://api.example.com/v1/employees method GET :从服务器取出资源(一项或多项) POST...limit=10:指定返回记录的数量 https://api.example.com/v1/zoos?...更多看这里:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 错误处理,状态码是4xx时,应返回错误信息,error当做key。

    2.1K40
    领券