小编Opt*_*nal的帖子

如何在解析JSON时查找父Json节点

我正在使用Jackson解析JSON流.

我正在使用的API是 ObjectMapper.readTree(..)

考虑以下流:

{
  "type": "array",
  "items": {
      "id": "http://example.com/item-schema",
      "type": "object",
      "additionalProperties": {"$ref": "#"}
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我阅读additionalProperties时,我发现这里定义了一个"$ ref".现在要解析引用,我需要转到它的父节点并找出id(解析基础架构).

我找不到任何API去JsonNode的父级持有additionalProperties.有没有办法实现这个目标?

信息:

为什么我需要这个是我需要找到必须解析$ ref的基本模式.要弄清楚基础架构,我需要知道其父级的ID.

java json jsonschema jackson

9
推荐指数
1
解决办法
8804
查看次数

Apache Olingo(Java OData)Swagger API框架集成

我在Tomcat中有一个webapp,它通过Apache Olingo公开OData端点.我在网上搜索了诸如swagger,olingo,integration等关键字但没有找到任何答案.

有一些关于.NET OData Swagger集成的信息,但我并不感兴趣.

请注意,我对Olingo和Swagger集成感兴趣,而不是Swaggersocket集成.

有谁知道Swagger是否支持Olingo集成?

编辑:Swagger UI是否与Olingo集成无缝协作?

swagger olingo

8
推荐指数
0
解决办法
517
查看次数

java enum变量是静态的吗?

public enum Operations {

    SINGLE,
    MULTIPLE;

    private Type operation;

    public void setOperation(Type operation) {
        this.operation = operation;
    }

    public Type getOperation() {
        return operation;
    }

    public static void main(String[] args) {
        Operations oper1 = Operations.SINGLE;
        oper1.setOperation(Type.GET);

        Operations oper2 = Operations.SINGLE;
        oper2.setOperation(Type.POST);
        System.out.println(oper1.getOperation());
        System.out.println(oper2.getOperation());
    }
}

enum Type {
    POST,
    GET;
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,两个操作的操作值都会发生变化.如何使用不同操作类型的两个Operations.SINGLE实例?

java enums

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

Oauth2 Access Token 可以被客户端共享吗?

我是 OAUTH 的新手,正在尝试理解该规范。因此,根据规范协议流程,我了解到客户端 A 可以获得授权代码,然后获取受保护资源的访问令牌。

现在,如果已经获得了访问令牌,则服务(例如链接)期望访问令牌成为 URL 查询的一部分,请参阅其接口文档。

因此,现在如果客户端 A 与客户端 B 共享访问令牌,或者例如任何人拦截请求并获取访问令牌,那么他也可以开始访问客户端 A 可以访问的所有详细信息。这种理解正确吗?如果是,那么我们如何保护这种访问令牌共享/滥用?

oauth linkedin-api

5
推荐指数
1
解决办法
3229
查看次数

如何在 OpenAPI (Swagger) 中为同一路径定义不同的主体参数?

我有一个服务,可以根据Content-Type标头有两种不同类型的主体参数。

例如对于路径/Pet:

  • 如果Content-Type: application/somecustom.resource+json使用,则POST可以作为Petbody参数。

  • 如果Content-Type: application/somecustom.function+json使用,则 POST 应该采用一些不同的主体参数来调用函数并返回不同的响应。

关于如何在 OpenAPI (Swagger) 中体现这一点有什么建议吗?

swagger openapi

2
推荐指数
1
解决办法
7008
查看次数

java-8带有参数的谓词

对于实际使用的Java8示例:: https://github.com/java8/Java8InAction/blob/master/src/main/java/lambdasinaction/chap1/FilteringApples.java

 public static boolean isGreenApple(Apple apple), 
 public static boolean isHeavyApple(Apple apple) {
Run Code Online (Sandbox Code Playgroud)

我想添加类似的方法,例如

public static boolean isAppleOfColor(Apple apple, String color)
Run Code Online (Sandbox Code Playgroud)

我想使用相同的模式访问它:

 List<Apple> colorApples = filterApples(inventory, FilteringApples::isAppleOfColor("red"));
Run Code Online (Sandbox Code Playgroud)

但是我不能在FilteringApples :: isAppleOfColor(“ red”)中传递参数。

到目前为止,我已经使用以下方法实现了这一点:

public static Predicate<Apple> colourMatches( String color) {
    return p->color.equals(p.getColor());
}
Run Code Online (Sandbox Code Playgroud)

然后打电话

  List<Apple> colorApples = filterApples(inventory, (Apple a)->a.colourMatchesOnApple("red"));
    System.out.println(colorApples);
Run Code Online (Sandbox Code Playgroud)

这可行。但是有没有办法我可以使用“引用的”参数化方法,例如FilteringApples::isAppleOfColor("red").

谢谢

编辑

谢谢,我刚刚在JLS 15.13中意识到:https : //docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.13 如下文本:

无法指定要匹配的特定签名,例如Arrays :: sort(int [])。而是,功能接口提供了用作过载解析算法(第15.12.2节)的输入的参数类型。这应该满足绝大多数用例;当极少数需要进行更精确的控制时,可以使用lambda表达式。

java predicate java-8

2
推荐指数
1
解决办法
2514
查看次数

如果服务器超时处理请求,要发送的正确 http 响应代码是什么?

我有一个长时间运行的 servlet,如果发生超时,我想中止该过程。(长时间运行的 servlet 是另一个讨论)。

现在,当我在服务器上中止请求时,我应该发送 HTTP 408 或 HTTP 503 或其他一些适当的状态。

408 似乎更像是客户端错误,而 503 更像是过载/维护状态。并且找不到合适的响应状态。

java http http-status-codes

0
推荐指数
2
解决办法
704
查看次数