对基于 REST 的 API 到底是什么感到困惑

2024-01-12

我试图了解基于 REST 的 API 到底是什么。据我了解,这只是在 API 中编写函数的约定?所有函数都应该是 GET/POST/DELETE/PUT 形式吗?因此,例如 REST API 中的函数可以是

public string getLastName(User x)
{
    return x.lastName;
}

我主要对 JSON/XML 在其中如何发挥作用感到困惑?


它不仅仅是一个公约。 REST API 背后的概念是您使用 HTTP 动词访问它,并且这些动词的功能已映射为执行所描述的操作。

例如:

GET将返回数据给调用者/发送者

DELETE会删除一条记录

它更进一步,但其中很多都是基于依赖 HTTP 来提供一定程度的一致性。例如,在 RESTful 服务中,您可以使用Accept通过提供以下内容来请求 JSON 响应或 XML 响应的 HTTP 标头application/json or application/xml值,分别。这只是一个简单的示例,由实施者决定其 API 如何工作,但它强调了利用 HTTP 的重要性。

为什么选择 JSON/XML?

同样,使用 JSON 和 XML 是因为它们是通过 Web 表示和传输数据的广泛且标准的方式。由于大多数请求来自 JavaScript,JSON(JavaScript 对象表示法)在数据传输(尤其是 GET 请求)中非常常见,并且 JS 可以轻松与 JSON 交互,而无需进行处理 XML 时所需的解析。另一方面,XML 有其自身的优点,例如使用模式和名称空间的能力。您可能已经意识到每种方法的优点/缺点,但这是一个单独的讨论。要点是 JSON/XML 是 REST API 中通信数据的主要方式,因为它们都是 Web 的事实上的标准。

有很多很好的资源可以提供更多信息,这篇 MSDN 文章可能会有所帮助:http://msdn.microsoft.com/en-us/library/dd203052.aspx http://msdn.microsoft.com/en-us/library/dd203052.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对基于 REST 的 API 到底是什么感到困惑 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • Babel 5 插件正在使用不受支持的 Babel 版本运行。尝试更新 babel-relay-plugin

    Doing Lynda 构建和部署全栈 React 应用程序教程 并卡在某个点上 出现以下错误 src index js Error BABEL Users kukodajanos Workspace ticket src index js
  • QueryOver 上的 GroupBy SqlFunction

    我有一个包含所有不同帐户名称前缀 a z 的列表 我使用这些前缀获取的 var accounts this SessionManager GetActiveSession QueryOver
  • LinqToLucene 和 Lucene.Net.Linq 之间的区别

    Are the LinqToLucene http linqtolucene codeplex com 和Lucene Net Linq https github com themotleyfool Lucene Net Linq项目不同
  • 将表单设置为父级抛出异常“顶级控件无法添加到控件”

    我想从另一个表单访问一个表单的变量 单击主窗体内的按钮时 我想将主窗体设置为父窗体 然后调出另一个窗体 子窗体 我将在其中访问主窗体的变量 我的点击处理程序如下 private void btnSystem Click object sen
  • 以时间间隔链接 UIView 动画

    我需要对 3 个 UIView 进行动画处理 淡入 淡出 1个动画持续时间为0 6秒 淡入 淡出周期为0 6 0 6秒 但我需要在 0 2 秒内启动动画 第一个动画应在 0 0 秒内启动 第二个动画应在 0 2 秒内启动 第三个动画应在 0
  • SwiftUI 列表背景的默认颜色是什么?

    我知道如何更改 SwiftUI 视图列表的背景颜色 但我找不到默认颜色 我尝试过使用 MacOS 的 数字色度计 但它无法正确识别颜色 正如您在此图中看到的 我尝试设置列表行的背景颜色 使用 listRowBackground根据数字色度计
  • kubernetes go 客户端补丁示例

    经过一番搜索后 我无法找到使用任何策略在 Patch 上执行的 golang Kube 客户端示例 我正在寻找执行此操作的 golang 示例 kubectl patch pod valid pod type json p op repla
  • 使用wp_insert_post()创建一个新页面

    我在 PHP 函数中有以下代码 当我安装允许您创建帖子或页面的插件时 该函数会被激活 工作完美并制作页面 如果 post type是 post 但如果 post type是 页面 那么它不起作用 不会创建页面 my post array p
  • Pandas 重置系列索引以删除多重索引

    我有一个看起来像这样的系列 1999 03 31 SOLD PRICE NaN 1999 06 30 SOLD PRICE NaN 1999 09 30 SOLD PRICE NaN 1999 12 31 SOLD PRICE 3 00 2
  • JavaFX 选项卡式窗格,每个选项卡上都有一个表格视图?

    我有一个选项卡式窗格 每个选项卡上都有一个表格 我向表中添加了不同的项目 我只希望每个选项卡向我显示该表的相应项目 但什么也没有出现 当我调试时 我可以清楚地看到选项卡窗格 其中包含选项卡 包含表视图 包含正确的项目 为什么这不起作用 Th
  • 如何为 android ndk 安装 libiconv?

    有人可以教我或给我指点如何为 Android 安装 libiconv 的教程吗 我已经用谷歌搜索了三天 但找不到教程或操作方法 获取 libiconv 源代码 并创建 Android mk makefile 看着这个网站 http grou
  • Drools 中类型不安全的对象字段访问

    我正在使用一个系统 其中插入 Drools 引擎的一些数据遵循以下 严重过度简化 格式 public class Item public String getValueType public Object getValue 这些值可能有几种
  • R 快速 XML 解析

    当前在 R 中将 XML 文件转换为数据帧的最快方法是什么 XML 如下所示 注意 并非所有行都包含所有字段
  • ValueError:名称投影仪的重复插件

    Running tensorboard logdir log dir我收到错误 Traceback most recent call last File home user local bin tensorboard line 11 in
  • 如何使用条形图缩放 Seaborn 的 y 轴

    我在用着factorplot kind bar 如何缩放 y 轴 例如使用对数刻度 我尝试修改绘图的轴 但这总是以某种方式弄乱条形图 所以请先尝试您的解决方案以确保它确实有效 考虑到你的问题提到barplot我想我也会为这种类型的情节添加一
  • 异步 MVVM 命令

    我一直在关注 Stephen Cleary 在 MSDN 杂志上发表的相当优秀的系列文章 异步 MVVM 应用程序的模式 https msdn microsoft com en us magazine dn630647 aspx 并一直在使
  • pydicom“数据集”对象没有属性“TransferSyntaxUID”

    我正在使用 pydicom 1 0 0a1 从下载here https github com pydicom pydicom 当我运行以下代码时 ds pydicom read file DR abnormal abc dcm force
  • 一个季度的周数

    我试图根据日期获取给定季度的周数 我目前有这个公式 1 WEEKNUM EDATE Y4 1 WEEKNUM DATE YEAR EDATE Y4 1 LOOKUP MONTH EDATE Y4 1 1 4 7 10 1 But for J
  • 没有名为 urllib3 的模块

    我编写了一个调用 API 的脚本 并于上周成功运行了它 这周 它不会运行 我收到以下错误消息 Traceback most recent call last File user audit py line 2 in
  • 对基于 REST 的 API 到底是什么感到困惑

    我试图了解基于 REST 的 API 到底是什么 据我了解 这只是在 API 中编写函数的约定 所有函数都应该是 GET POST DELETE PUT 形式吗 因此 例如 REST API 中的函数可以是 public string ge