目前正在设计一个 REST API,并且不确定如何最好地处理提款操作,出于发布忽略安全性的目的,因为这已经得到处理。
当前用户资源有一个平衡连接,
GET https://api.example.com/user/1/balance
{"balance":10}
Run Code Online (Sandbox Code Playgroud)
将返还用户余额。
我可以想到两种方式从该余额中提取,要么在余额连接上删除,要么通过新连接提取,然后将金额发布到该连接。
DELETE实施 - 撤回 5 分
DELETE https://api.example.com/user/1/balance?amount=5
{"balance":5}
Run Code Online (Sandbox Code Playgroud)
POST实施 - 提现 5 分
POST https://api.example.com/user/1/withdraw
HTTP BODY: amount=5
{"balance":5}
Run Code Online (Sandbox Code Playgroud)
建议?
就我个人而言,我会在提款连接上使用POST,因为这将操作与数据分开,然后可以使用GET获取提款交易并使用DELETE取消。
另一种方法可能是在余额对象上创建交易连接,然后对其进行POST 。
POST https://api.example.com/user/1/balance/transactions
HTTP BODY: amount=-5
{"balance":5}
Run Code Online (Sandbox Code Playgroud)
这是一个更好的方法吗?然后,这将在余额资源上创建事务资源。
我是公司的 API 开发人员。我们正在开发一个社交网络。我们正在使用友谊系统。我们正在使用面向API的系统。我将要编写的 API 将被我们正在开发的每个平台使用。
我通常有一个用户资源,并且使用友谊表来跟踪友谊:
+-----------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| sourceId | int(11) | NO | MUL | NULL | |
| targetId | int(11) | NO | | NULL | |
| status | tinyint(1) | NO | | 0 | |
| seen | tinyint(1) | NO | | 0 | | …
Run Code Online (Sandbox Code Playgroud) rest social-networking restful-url social-network-friendship
我们被要求构建一个基于 Domino 服务器的数据库,用于与远程非 Domino 服务器交换数据。可以使用 Web 服务连接到远程服务器。
使用 R8.5.3 在 Domino 中创建 RESTful 服务似乎很简单:Internet 上有一些关于 Domino 数据服务的非常有趣的文章。研究这一页肯定会帮助我建立连接的一端。
现在介绍代理中的消耗部分。我们之前做过一次,不久前,然后我们使用纯 HTTP URL 和一个简单的 GetDocumentByURL。它并不完美,但它有效。
但这是在 Domino 代理中使用 Web 服务的最佳方式吗?这是一个 Linux 环境,所以我不能使用 MS-objects 等。是否有一些我可以调用的标准库,最好是在 LotusScript 中?或者有没有办法在代理中使用某些 XPage 控件?
感谢您的建议!
I\xe2\x80\x99m 创建一个 REST API,其中我的一些资源具有由两个独立部分组成的复合 ID。一个示例是给定纬度和经度的资源。
\n\n我最初的想法是将 ID 的每个复合部分添加为路径的单独部分,如下所示:
\n\nhttp://localhost/phone-details/Vodafone/07123000000 - Operator and number\n\nhttp://localhost/location-details/50/-2 - Lat and long\n
Run Code Online (Sandbox Code Playgroud)\n\n这是采取这种方法的最佳实践吗?也许应该使用查询字符串,以便每个复合 ID 部分都有一个清晰易懂的名称?或者,复合 ID 是否应该仅通过逗号分隔来传递?
\n我正在使用 Jersey 和 JAX-RS 来实现 REST POST 端点。实际的 servletweb.xml
是com.sun.jersey.spi.spring.container.servlet.SpringServlet
. 然后,我使用 JAX-RS 来注释我的端点:
@POST
@Path("foo")
public Response foo(Reader input) throws IOException {
BufferedReader lineReader = new BufferedReader(input);
String line;
while ((line = lineReader.readLine()) != null) {
System.out.println(line);
}
return Response.ok("{}", MediaType.APPLICATION_JSON).build();
}
Run Code Online (Sandbox Code Playgroud)
当我到达端点并提供一个文本文件时,换行符会丢失,并且会作为一行读入。例子:
line 1
line 2
line 3
Run Code Online (Sandbox Code Playgroud)
打印出:
line 1line 2line 3
Run Code Online (Sandbox Code Playgroud)
我尝试使用注释@Consumes("text/plain")
并将请求标头设置为,Content-Type:text/plain
但这没有帮助。为什么换行序列被删除?
我正在尝试为学校项目实现一个 n 层架构应用程序。客户端和服务器之间的通信是通过 RESTful Web 服务完成的。我使用Jersey在Java中实现这一点。我唯一的问题是,如何在服务器上注册客户端以接收更改通知(就像通常使用观察者模式或监听/发布模式所做的那样)。我是否还需要在客户端实现一个服务,然后注册服务器要调用的 URL,然后在发生更改时调用这些 URL?
感谢您的帮助!
作为一个简单的例子,我有一个具有以下字段的学说实体
id
name
description
Run Code Online (Sandbox Code Playgroud)
我正在使用JMSSerializerBundle
并且它在大多数情况下运行良好,但是如果我想让序列化数据(Json)包含未完全映射到我的实体的内容怎么办?
例如,如果我只想返回描述的前 50 个字符并且我想将其称为short_description
.
我尝试使用排除策略来@Expose
公开方法,但这不受支持。
我需要经常与许多不同的实体一起做这种事情,我想知道是否有人可以提出一个很好的干净的方法来解决这个问题。
我已经阅读了整个文档,JMSSerializerBundle
并在互联网上寻找解决方案,我可以想出一些解决方案,但生成的代码看起来有点脏。
我有一个 Node.js 应用程序,它打开一个文件,扫描每一行,并为每一行进行涉及 Couchbase 的 REST 调用。一个文件的平均行数约为 12 至 1300 万行。目前,无需任何特殊设置,我的应用程序可以在大约 24 分钟内完全处理大约 100 万条记录。我浏览了很多问题、文章和 Node 文档,但找不到有关以下内容的任何信息:
背景:我们有一个现有的 java 应用程序,它通过生成 100 个线程来执行完全相同的操作,并且它能够实现比当前节点对应物稍好的吞吐量。但我想尝试节点,因为有问题的两个操作(读取文件并为每一行进行 REST 调用)对于节点应用程序来说似乎是完美的情况,因为它们都可以在节点中异步,而 Java 应用程序会阻止对这些操作的调用。 ..
任何帮助将不胜感激...
我会尝试用图表来解释
[REST SERVER] <--------> [JAVASCRIPT BASED WEBSITE] <--------> [USER]
192.168.0.2 192.168.0.3 192.168.0.123
Run Code Online (Sandbox Code Playgroud)
如何获取使用 REST 服务器的网站的 IP,而不是用户的 IP。
我尝试使用 $_SERVER['REMOTE_ADDR'] 和 $_SERVER['HTTP_REFERRER'] 但它们都返回用户的 IP。
在网络上可以吗?我的 REST 服务器使用 PHP。
你怎么做到这一点:
response = Net::HTTP.post_form(uri, {"q" => "My query", "per_page" => "50"})
Run Code Online (Sandbox Code Playgroud)
仅使用原始字符串而不是表单?就像是:
response = Net::HTTP.normal_post(uri, "My dog likes to walk in the forest")
Run Code Online (Sandbox Code Playgroud) rest ×10
http ×2
java ×2
jersey ×2
api ×1
jax-rs ×1
jms ×1
lotus-domino ×1
node.js ×1
performance ×1
php ×1
restful-url ×1
ruby ×1
symfony ×1
url ×1
web-services ×1