标签: hydra-core

是否可以在 Hydra-core python 包的结构化配置中使用 Pydantic 代替数据类?

最近我开始使用Hydra来管理我的应用程序中的配置。我使用结构化配置为 .yaml 配置文件创建架构。Hyda 中的结构化配置使用数据类进行类型检查。但是,我还想对我在结构化配置中指定的某些参数使用某种验证器(类似这样)。

您知道是否可以使用 Pydantic 来实现此目的吗?当我尝试使用 Pydantic 时,OmegaConf 抱怨它:

omegaconf.errors.ValidationError: Input class 'SomeClass' is not a structured config. did you forget to decorate it as a dataclass?
Run Code Online (Sandbox Code Playgroud)

hydra-core fb-hydra

10
推荐指数
1
解决办法
4440
查看次数

如何配置 Spring Data Rest 返回 Json-LD 或 Siren 媒体类型而不是 HAL

我一直在努力寻找任何示例来说明如何覆盖默认的 Spring Boot Data Rest JpaRepository 行为以返回 HAL 响应以外的其他内容。我发现 Siren 和 Json-LD 都可以满足要求,但没有任何如何让它与 spring 一起工作的示例。我正在使用 Spring 5、Spring Data Rest 2.0.4.RELEASE。请注意,我不想为自定义休息控制器执行此操作,而是为通过扩展 JpaRepository 提供的默认存储库执行此操作。这是我第一次发帖,因此对于我可能无意中违反的任何规则,我深表歉意。

更新:我能够找到一个具有 SirenMessageConverter 的库 Hydra-Spring,按照存储库上的示例,我能够执行以下操作:

@Configuration
@EnablePluginRegistries(RelProvider.class)

public class Config implements WebMvcConfigurer   {

private static final boolean EVO_PRESENT =
        ClassUtils.isPresent("org.atteo.evo.inflector.English", null);

@Autowired
private PluginRegistry<RelProvider, Class<?>> relProviderRegistry;

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(sirenMessageConverter());
    converters.add(hydraMessageConverter());
    converters.add(halConverter());
    converters.add(uberConverter());
    converters.add(xhtmlMessageConverter());
    converters.add(jsonConverter());
}

@Bean
public RepositoryRestConfigurerAdapter repositoryRestConfigurer() {

    return new RepositoryRestConfigurerAdapter() {

        @Override
        public void configureHttpMessageConverters(
              List<HttpMessageConverter<?>> messageConverters) {
            messageConverters.add(0, sirenMessageConverter());
        } …
Run Code Online (Sandbox Code Playgroud)

spring spring-data-jpa spring-hateoas json-ld hydra-core

5
推荐指数
0
解决办法
1210
查看次数

使用JSON-LD和Hydra一次获取子资源的集合

在RESTful Web API一书中,作者建议公开一个配置文件并使用一种确认链接关系的内容类型.Hydra扩展的JSON-LD似乎符合这些要求,我想在我的新API设计中使用它们.

我目前遇到性能问题.假设我有一个在线自行车商店,我想要检索有关给定自行车车轮的信息.

根据Hydra规范,在我看来,我需要发送2个请求来获取有关车轮的详细信息.第一个要求是自行车本身:

GET /mybike HTTP/1.1
Host: wowbike.com
Run Code Online (Sandbox Code Playgroud)

响应包含一个Hydra :: Link到轮子集合:

HTTP/1.1 200 OK
Content-Type: application/ld+json
{
  "@context" :
               {
                   "Bike": "/contexts/vocab#Bike"
               },
  "@id"      : "/mybike",
  "@type"    : "Bike",
  "size"     : "L",
  "wheels"   : "/mybike/wheels" // "wheels" is a "hydra:Link"
}
Run Code Online (Sandbox Code Playgroud)

现在我可以向wheel资源发送第二个请求以获取详细信息:

GET /mybike/wheels HTTP/1.1
Host: wowbike.com

HTTP/1.1 200 OK
Content-Type: application/ld+json
{
    "@context":
               {
                   "Collection": "http://www.w3.org/ns/hydra/core#Collection",
                   "Wheel"     : "/contexts/vocab#Wheel"
               },
    "@type"   : "Collection",
    "@id"     : "/mybike/wheels",
    "member"  :
                [
                 {
                   "@id"   : "/mybike/wheels/firstwheel", …
Run Code Online (Sandbox Code Playgroud)

rest http hypermedia json-ld hydra-core

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