小编Tad*_*nis的帖子

HATEOAS - 如何建模改变状态的链接关系

遵循HATEOAS原则,每个州应该被超链接,建模链接改变资源状态的最佳方法是什么?

让我们用订单的经典例子:

{
   id : 12,
   state: 'pending',
   ...,
   links: [
     ...,
     { 
       rel: 'cancel',
       href: '/orders/12/cancel'
     },
     ...
   ]
}
Run Code Online (Sandbox Code Playgroud)

我对这个"/取消"部分并不满意- 如果我能发送带有内容的" PUT "请求,我会感觉好多了:

{
   status:'cancelled'
}
Run Code Online (Sandbox Code Playgroud)

但是如何用链接部分中的"href"属性来表示?我想在那里代表可用的行动,例如,取消订单并不总是可能的("完成"状态).

一种可能性是使用像'/ orders/12?action = cancel'这样的URL,它有点像RPC方法,我错过了一些东西.

看起来可能最好的另一种可能性就是拥有这样的链接:

{
  rel: 'cancel',
  href: '/orders/12/',
  type: 'PUT',
  values: {
    state: 'cancelled'
  }
}
Run Code Online (Sandbox Code Playgroud)

这个解决方案可能感觉有点冗长.

任何想法如何优雅地处理?也许有人已经解决了类似的"问题"?

rest rel hateoas

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

如何使用java配置配置Spring ConversionService?

我有这样的xml:

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="converters.AddressToStringConverter" />
                <bean class="converters.StringToAddressConverter" />
            </list>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

它可以毫无问题地配置转换器.

但是这段代码无法做到:

@Configuration
public class ConversionConfiguration {

    @Bean
    public ConversionService getConversionService() {
        ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
        bean.setConverters(getConverters());
        bean.afterPropertiesSet();
        ConversionService object = bean.getObject();
        return object;
    }

    private Set<Converter> getConverters() {
        Set<Converter> converters = new HashSet<Converter>();

        converters.add(new AddressToStringConverter());
        converters.add(new StringToAddressConverter());

        return converters;
    }
}
Run Code Online (Sandbox Code Playgroud)

这个配置由上下文扫描 - 我用调试器检查它.哪里可能是问题?

java xml configuration spring

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

是否有一种编程语言可以:

我很好奇这样的事情......有没有一种编程语言可以:

  • 语法,如Java和/或C++
  • 模板/泛型支持
  • 内存管理(没有垃圾回收)
  • "干净的语法"(没有像perl或c/c ++这样的混乱)
  • "正常"OOP(多义,接口,抽象类,重载等)
  • (最好)编译成机器代码
  • 名称空间支持
  • 异常支持
  • 没有源预处理器(如c\c ++中所示)
  • 静态打字

c++ java oop programming-languages

-2
推荐指数
2
解决办法
311
查看次数

标签 统计

java ×2

c++ ×1

configuration ×1

hateoas ×1

oop ×1

programming-languages ×1

rel ×1

rest ×1

spring ×1

xml ×1