天道酬勤,学无止境

rest

How to load a form with camunda embedded REST and Spring?

问题 我在 https://github.com/camunda/camunda-bpm-examples/tree/master/deployment/embedded-spring-rest 获取了该项目,并尝试加载我制作并包含在 src/main/ 中的 html 表单webapp/forms 文件夹。 现在我只想在特定进程启动时加载表单。 我尝试了几件事,包括 @RequestMappping 注释,但是当进程开始说资源不可用时,我总是得到相同的链接: http://localhost:8080/camunda-quickstart-embedded-spring-rest/WEB-INF/classes/org/camunda/bpm/example/loanapproval/Starter.java 这是我的简单过程,我希望在第一个用户任务开始时加载表单。 我在哪里配置资源? 我没有使用带有 Web 界面(驾驶舱、任务列表...)的 camunda 嵌入式 tomcat,只是一个普通的 tomcat,我在其中部署了 .WAR 文件。 我的 .html 文件也不是用 camunda 表示法编写的,它也只是一个普通的 html 文件。 我将 embedded:deployment:forms/request-loan.html 放在 formKey 中,但它也不起作用。

2022-05-17 02:41:08    分类:技术分享    java   spring   rest   tomcat   camunda

Refund using PHP PayPal REST API?

问题 我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序。 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中。 我现在正在尝试退款销售,但无法让它停止给出“传入的 JSON 请求未映射到 API 请求”错误。 有人对如何使它工作有任何建议吗? 我在代码中留下了一些我的尝试,并对它们的结果进行了评论。 我在让这个工作的方向上有点迷失。 任何帮助将不胜感激。 我一直在关注位于此处的文档:https://developer.paypal.com/docs/integration/direct/payments/refund-payment/ 我可能正在努力将该请求适应 PHP。 我找到了这段代码:https://github.com/paypal/PayPal-PHP-SDK/blob/master/sample/payments/RefundCapture.php 但是对于简单的退款请求来说,它“需要”一棵看起来有点过分的文件树。 <?php require_once(dirname(__FILE__) . '/paypalSDK/autoload.php'); // require paypal files require_once(dirname(__FILE__) . '/paypalSDK/paypal/rest-api-sdk-php

2022-05-16 07:09:04    分类:技术分享    php   rest   paypal   paypal-rest-sdk

add location header to Spring MVC's POST response?

问题 我的 Spring boot 1.4 应用程序有这个 POST 方法来创建资源。 作为要求,它应该吐出一个位置标头,指定新创建的资源的 URL (https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)。 我只是想知道是否有任何比手动构建 URL 并将其添加到响应中的好方法。 任何帮助/线索都非常感谢 回答1 使用 Spring 指南构建 REST 服务中演示了这个确切的场景。 持久化新实体后,您可以在控制器中使用以下内容: URI location = ServletUriComponentsBuilder .fromCurrentRequest() .path("/{id}") .buildAndExpand(newEntity.getId()) .toUri(); 然后,您可以使用 ResponseEntity 将其添加到您的响应中,如下所示: ResponseEntity.created(location).build() 或者 ResponseEntity.status(CREATED).header(HttpHeaders.LOCATION, location).build() 后者需要一个字符串,因此您可以在 uri 构建器上使用toUriString()而不是toUri() 。 回答2

2022-05-16 06:26:10    分类:技术分享    java   rest   http   spring-mvc   post

When should I return HTTP Status Code 500 (Internal Server Error) from REST application to client?

问题 回答1 如 HTTP 规范中所述: 5xx(服务器错误)类状态码表明服务器知道它出错或无法执行请求的方法。 除了响应 HEAD 请求时,服务器应该发送一个包含错误情况解释的表示,以及它是暂时的还是永久的情况。 用户代理应该向用户显示任何包含的表示。 这些响应代码适用于任何请求方法。 原文: https://greenbytes.de/tech/webdav/rfc7231.html#rfc.section.6.6 请注意,从协议的角度来看,它是应用程序服务器还是在应用程序服务器内部运行的东西都没有关系。

2022-05-16 04:39:03    分类:技术分享    rest   http-status-codes   internal-server-error   http-response-codes   http-status-code-500

How do I get the JSON body in Jersey?

问题 泽西岛有@RequestBody等价物吗? @POST() @Path("/{itemId}") @Consumes(MediaType.APPLICATION_JSON) public void addVote(@PathParam("itemId") Integer itemId, @RequestBody body) { voteDAO.create(new Vote(body)); } 我希望能够以某种方式获取 POSTed JSON。 回答1 您不需要任何注释。 唯一没有注释的参数将是请求正文的容器: @POST() @Path("/{itemId}") @Consumes(MediaType.APPLICATION_JSON) public void addVote(@PathParam("itemId") Integer itemId, String body) { voteDAO.create(new Vote(body)); } 或者你可以得到已经解析为对象的主体: @POST() @Path("/{itemId}") @Consumes(MediaType.APPLICATION_JSON) public void addVote(@PathParam("itemId") Integer itemId, Vote vote) { voteDAO

2022-05-15 17:20:03    分类:技术分享    java   rest   jersey   dropwizard

RESTful Services - WSDL Equivalent

问题 回答1 Web 应用程序描述语言 (WADL) 基本上等同于用于 RESTful 服务的 WSDL,但是否需要这样的东西一直存在争议。 Joe Gregorio 写了一篇关于该主题的好文章,值得一读。 回答2 WSDL 描述服务端点。 REST 客户端不应耦合到服务器端点(即不应提前知道 URL)。 REST 客户端耦合在客户端和服务器之间传输的媒体类型上。 在客户端自动生成类以包装返回的媒体类型可能是有意义的。 但是,一旦您开始围绕服务交互创建代理类,您就会开始模糊 HTTP 交互并有退化回 RPC 模型的风险。 回答3 WSDL 可扩展以允许描述端点及其消息,无论使用何种消息格式或网络协议进行通信 但是,REST 使用网络协议通过使用 HTTP 动词和 URI 来表示对象状态。 WSDL 在这里告诉您,如果您发送此消息,您将执行此操作并作为结果返回此格式。 在 REST 中,如果我想创建一个新的配置文件,我会使用带有 JSON 正文的动词POST或将我的配置文件描述到 URL /profile的 http 服务器变量 POST应返回服务器端生成的 ID,使用状态代码201 CREATED和标头Location: *new_profile_id* (例如 12345) 然后,我可以使用 HTTP 动词POST更改/profile/12345的状态

2022-05-15 17:01:03    分类:技术分享    rest   wsdl

Patch REST API to Partial Update MongoDB in .NET

问题 我有一个对象 { "_id": "testobject", "A": "First line", "B": "Second line", "C": "Third line" } 我想向我的 API 发送一个 REST PATCH 请求以仅更新这些属性之一 { "_id": "testobject", "C": "Forth line" } 这被解析成一个类 public class SomeObject { public string A { get; set; } public string B { get; set; } public string C { get; set; } } 我现在需要更新 MongoDB 中的现有文档,但只更新属性C 。 我可以仅为这条记录创建一个更新定义 UpdateDefinition<SomeObject> update = Builders<SomeObject>.Update.Set(x => x.C, <value of property C>) 或者我可以硬编码检查每个属性以查看它是否为空 IList<UpdateDefinition<SomeObject>> updates = new List<UpdateDefinition<SomeObject>>(); if (!string.IsNullOrEmpty(C)) {

2022-05-15 12:10:04    分类:技术分享    c#   mongodb   rest   updates   partial

URI for RESTful Web Services

问题 我试图了解 URI 的外观。 查看此参考:http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services,我对 POST 应该如何工作感到有些困惑。 给出的示例如下:http://example.com/resources/142。 我将“142”关联为“资源”中的特定项目(因此,可以删除、更新或获取表示)。 在创建集合的新成员的上下文中,“142”让我感到困惑。 142是什么意思? 就数据库而言,那会是新成员的 id 吗? (我将这些与 CRUD 相关联)。 谁能澄清一下? 回答1 我也不太确定我是否理解,但我知道,如果您发布到 http://example.com/resources/142,您将 142 视为其本身的一个集合,并将添加另一个项目那个集合。 如果是 www.blog.com/blog/142 142 可能是用户博客,而 POST 可能会创建新的博客文章。 对 142 的 PUT 将更新整个 142 或创建博客(如果它不存在)。 回答2 这个例子可能是一个糟糕的例子。 在您的情况下,一个更好的例子是 http://example.com/users/142 在 REST 中,这被解释为 http://example.com/users?id=142

2022-05-15 09:10:03    分类:技术分享    web-services   http   rest

jQuery - Submit Form to RESTful URL

问题 我的大脑已经 100% 空白了,所以需要一些指导。 <form action="/" id="searchForm"> <input type="text" name="s" placeholder="Search..."> <input type="submit" value="Search"> </form> 我需要该表单,以便页面重定向到 URL,例如 http://example.com/rest/ful/url/{value of search}/例如http://example.com/rest/ful/url/jQuery/如果我搜索jQuery 我什至需要 jQuery 吗? 回答1 使用 jquery 的解决方案: $('#searchForm').on('submit', function(event){ $('[name=s]').prop('disabled', true) $(this).attr('action', 'http://example.com/rest/ful/url/' + $('[name=s]').val()); }); https://jsfiddle.net/3y4efht0/1/ 回答2 使用 jquery 的.submit事件并获取输入值并使用window.location.href来实现您的要求。 请检查以下片段。 $(

2022-05-15 07:21:07    分类:技术分享    javascript   jquery   rest

symfony api-platform depth

问题 到目前为止,我们一直在与 Symfony、Doctrine 和 Serializer 深度作斗争。 我希望能够使用 Symfony 提供仅一级深度的 JSON REST API,允许我直接从视图管理我的“外键”和关系逻辑。 GET /people/1 { id:1, name:"theonewhoknocks", friends: [3, 12, 25] } 使用 FosRESTBundle,我们一直在努力取得成功。 (我们已经看到模型的“深度”注释和“组”视图,但这些都不符合我们的需要)。 问题很简单,在我们为未来的 API 做出选择之前,我们必须知道: api-platform 是否能够提供非常简单的一层(带有明显的外键)REST API? 回答1 API 平台可以使用 Serializer Symfony 包及其注释集来处理。 为了定义操作将返回什么,我们使用了一个normalizationContext ,它定义了要包含在 api 操作结果中的属性组。 然后包含的属性将此组名称链接到@Groups序列化器注释 use ApiPlatform\Core\Annotation\ApiResource; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Serializer\Annotation\Groups; /

2022-05-15 05:57:04    分类:技术分享    rest   symfony   api-platform.com