标签: restful-architecture

如何在 RESTful API 中创建/更新多对多关系

这是在我的 API 中将玩家添加到团队中的方法:

PUT /teams/1/players/1/
Run Code Online (Sandbox Code Playgroud)

我现在想把球员换到另一支球队。

我怎样才能做到这一点?

api rest restful-architecture

4
推荐指数
1
解决办法
2394
查看次数

如果一个API只提供POST请求功能,它是RESTful吗?

我不确定我是否正确理解 RESTful API 的概念。如果我理解正确的话,这样的 API 应该提供可以通过 GET、POST、PUT 和 DELETE 请求触发的函数。我的问题是:如果一个API只提供POST请求功能,它还是RESTful吗?

rest restful-architecture

4
推荐指数
1
解决办法
3830
查看次数

REST API 访问控制从访问令牌与路径参数中提取主题

在 OAUTH 中保护 REST API 的总体思路是使用 Authorization Bearer < access token> 标头,通常是 JWT,其中包含有关主题的信息,即。sub: u1 其中u1是数据库中的userId。

有了这样的访问令牌,客户端应用程序就可以访问不同的资源。假设一个用户有很多车,有很多船,等等......所以,以RESTful方式,/users返回所有用户,/users/:u1返回用户u1的数据,返回用户/users/:u1/cars/:c1汽车的数据,返回用户船的数据等。c1u1/users/:u1/boats/:b1b1u1

我的问题是关于u1. 不应该u1从 JWT 访问令牌中提取,因为我们知道我们可以信任 JWT?理论上,应用程序可以使用为 user 颁发的 JWT u1,但请求访问/users/:u2应被禁止。

我们可以使其/users/:u1不可用,并强制客户端应用程序调用并从 JWT 中/users提取。sub但是,调用/users返回数据会u1破坏 RESTful 模式及其优点(即 http 缓存)。

正确的做法是什么?

这可能是authorization关于 REST api 问题的框架。JWT只能寻址authentication而已。

security rest authorization restful-authentication restful-architecture

4
推荐指数
1
解决办法
1221
查看次数

关于RESTful API的一些问题以及为什么很少实现某些最佳实践的原因

在大多数教程,文档,文章等有关的RESTful我遇到了几个相同点了,但我很少能看到这些"是什么使得它的RESTful"点执行.

例如,我已多次阅读:

我从未遇到过我已经看过这个实现的API.我曾经使用的每个API总是要求我在URL的末尾附加XML或JSON.他们做错了吗?

  • 版本

    版本媒体类型

    应用/ vnd.something.v1 + JSON

    自定义标题

    X-API-Version:1

    URL中的版本

    / v1/resouce不是RESTful,通过将版本放在您创建单独资源的URL中

如果您需要引入非向后兼容的功能,那么确实创建一个单独的资源是正确的做法吗?

再一次,在我使用的所有API版本中,他们在URL中使用v1,v2(例如google,imgur等)

如果不实现这些要点,我的API不会被视为RESTful吗?

澄清这些要点将非常感激.

api rest restful-architecture

3
推荐指数
1
解决办法
192
查看次数

如何捕获RESTEasy Bean验证错误?

我正在使用JBoss-7.1和RESTEasy开发一个简单的RESTFul服务.我有一个名为CustomerService的REST服务,如下所示:

@Path(value="/customers")
@ValidateRequest
class CustomerService
{
  @Path(value="/{id}")
  @GET
  @Produces(MediaType.APPLICATION_XML)
  public Customer getCustomer(@PathParam("id") @Min(value=1) Integer id) 
  {
    Customer customer = null;
    try {
        customer = dao.getCustomer(id);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return customer;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击URL http:// localhost:8080/SomeApp/customers/-1时, @ MIN约束将失败并在屏幕上显示堆栈跟踪.

有没有办法捕获这些验证错误,以便我可以准备一个带有正确错误消息的xml响应并显示给用户?

java rest jax-rs resteasy restful-architecture

3
推荐指数
1
解决办法
6349
查看次数

RESTful服务是否可以为同一资源返回JSON和XML,具体取决于请求标头?

我有一个简单的RESTful方法,它当前返回一个对象的JSON表示.

我的问题更多的是从架构的角度而不是完全技术性的.

是否应该以这样的方式设计RESTful服务,使其同时返回JSON和XML?

据我所知,这是一种不好的做法,应该为此定义单独的资源.一个资源应返回JSON数据和其他一个XML.

我是否正确思考?

java xml rest json restful-architecture

3
推荐指数
1
解决办法
3万
查看次数

Meteor,Laravel RESTful API + AngularJS或Laravel用于我的下一个Web应用程序

我有PHP背景,我用Laravel(3和4)构建了几个Web应用程序.我也有在项目中使用RESTful API的经验.

我当前的客户端有一个ERP,它是一堆PHP文件.这些文件包含大约60K行的意大利面条代码.客户不希望投入更多资金来开发该系统,因此我们决定重写整个应用程序.我知道重写的所有风险,我也阅读了Joel的文章(http://www.joelonsoftware.com/articles/fog0000000069.html),因此不需要重构或重写讨论.

对于新的应用程序,我一直在考虑使用Laravel(4或5)构建RESTful API,并使用AngularJS构建前端.那是在我测试Meteor 1.0之前.这是非常有前途的,将它用于这个项目是非常好的.但它适合这种产品吗?

我客户的产品是这样的:

  • 此应用没有公开注册(管理员创建所有用户)
  • 复杂的用户权限(组级权限和用户级权限,6个组)
  • 文件处理(图像,pdf等).文件用作邮件附件.
  • 大数据表
  • 外部API调用

应用程序包含以下部分:用户,订单,优惠,时间跟踪,销售,报告,日历,客户.

因此,将Meteor用于此类项目是否明智,或者您更喜欢RESTful API + AngularJS组合?我在犹豫,因为我担心在使用Meteor的大型项目中,代码会变得混乱.

rest restful-architecture laravel angularjs meteor

3
推荐指数
1
解决办法
2956
查看次数

如果缺少@Produces注释,球衣服务会返回什么?

我开始学习用于开发宁静网络服务的球衣.

正如我在大多数示例中注意到的那样使用以下注释:

@Consumes
Run Code Online (Sandbox Code Playgroud)

定义输入参数的格式

@Produces
Run Code Online (Sandbox Code Playgroud)

定义输出参数的格式

但在实际代码中,我看到的方法如下所示:

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("/login")
public Response login(@FormParam("login") final String username, @FormParam("password") final String password){...}
Run Code Online (Sandbox Code Playgroud)

我看到这个方法使用POSTHTTP方法.参数userNamepassword将具有形式 @Consumes(MediaType.APPLICATION_FORM_URLENCODED).我看到URL来执行这个方法.

但是我不明白这个方法会返回什么.哪种格式?

java rest jax-rs jersey restful-architecture

3
推荐指数
1
解决办法
2257
查看次数

RESTful API的代码需求约束

作为一个新手,我试图了解REST及其原理。我已经阅读了一些有关它的文章,但是却难以理解代码需求约束,这是唯一的可选约束。它是什么 ?如何以及何时实施?任何帮助,将不胜感激。

rest web-services restful-architecture

3
推荐指数
1
解决办法
2743
查看次数

JAX-RS Web服务在GlassFish Server 4.0上有效,但在Tomcat上无效

我是Web服务的新手。因此,我从一个如下的小程序开始。

它可以在GlassFish服务器中正常运行,但不能在Tomcat中运行(我想在Tomcat上运行)。这是一个简单的程序,仅给出如何运行Web服务应用程序的想法。

FirstRestService.java:

package com.sandy.demo;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/resources")
public class FirstRestService extends Application {

}
Run Code Online (Sandbox Code Playgroud)

员工.java:

package com.sandy.demo;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/employees")
public class Employees {

    @GET
    public String getEmployeesNames() {
        return "Hello World";
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经包含了jsr311-api-1.1.1.jar(JAX-RS API JAR文件)。

我获取了该应用程序的有效WAR文件,并将其部署在GlassFish Server中。然后,我使用URL运行服务器:http://localhost:8080/MyFirstRestApplication/resources/employees

但是我无法在Tomcat中执行相同的操作。

java api web-services jax-rs restful-architecture

3
推荐指数
1
解决办法
1335
查看次数