spring-android-auth ClientHttpRequest
问题
使用spring-android-auth时,其使用的RestTemplate
是依赖包spring-android-rest-template中的,而是spring-web-mvc中的。该
RestTemplate`使用http request默认的逻辑如下
|
|
使用spring-android-auth时,其使用的RestTemplate
是依赖包spring-android-rest-template中的,而是spring-web-mvc中的。该
RestTemplate`使用http request默认的逻辑如下
|
|
Google Guice 支持自定义Scope,当然通常情况下我们不需要自己实现Scope。RoboGuice作为Android的IOC容器,实现了基于当前Context的ContextScope。我们可以根据自己需求自定义Scope,实现一些特殊的需求。GitHub的Android客户端定义了一个AccountScope,实现了基于当前账户的上下文对象的注入。
Gradle plugin packages up reusable pieces of build logic, which can be used across many different projects and builds.
You can include the source for the plugin directly in the build script. This has the benefit that the plugin is automatically compiled and included in the classpath of the build script without you having to do anything. However, the plugin is not visible outside the build script, and so you cannot reuse the plugin outside the build script it is defined in.
对用Android的Authenticator,官方的API Guides是似乎没有很好的介绍文档,Reference中也只是简单地介绍了一下。虽然sync-adapters中对于Authenticator有提及,但是对于其用法也没有一个完整的认识,所以对其进行一定的学习并且记录了下来。
我们完全可以自己自己的账户管理机制,提交一个登录表单到服务器然后返回一个认证token。但是通常覆盖不到一些细节,如果用户在另外一客户端修改了密码怎么办;认证token的过期处理;单点登录的实现。这些东西实现起来还是挺麻烦的,但是如果Android的认证框架已经实现了这些功能,并且额外提供了用户数据同步等额外的功能,那还有理由不使用它吗?Stop Trying to Reinvent the Wheel.
Datatype Channel 可以指定Channel接收的数据的数据类型
指定了datatype
之后,如果Channel收到了类型不是指定的类型,会如下进行:
datatype
Spring Social可以用来连接Software-as-a-Service (SaaS) 服务商提供了REST API,Spring的项目本身已经提供了对Facebook, Twitter, Linkedin, Github等服务商的REST API的连接。
实际在开发app的过程中,通常是需要本地app连接到后台服务器的REST API的。客户端的开发本身可能还会涉及相对复杂的验证机制,比如OAuth Dance
(客户端和服务器来回交互获取access token的过程),Spring Social为客户端的开发提供了一套框架,包括连接的建立,对API的强类型绑定,应用可以直接通过客户端访问需要的API。
OAuth2.0的最好的文档,莫过于RFC 6749。OAuth2.0本身是一个比较灵活的标准,能够适配应用到各种场景。本文主要是对文档的翻译以及加上部分个人的理解。
OAuth定义了4个角色
resource owner
是人的时候,它是指终端用户access tokens
能够接收和响应对受保护资源的请求owner
的行为和授权下,请求受保护资源的应用。“client”没有特指任何实现特性(比如,无论应用执行在服务器,桌面或者其他设备上)resource owner
并且获得授权后,分发access tokens
给client
的服务器。
关于RESTful API Versioning,有很多讨论 Nobody Understands REST or HTTP, Versioning REST Services, best-practices-for-api-versioning, How are REST APIs versioned?, 总结如下。
尽管设计API的时候,我们尽可能设计完美的API,尽可能的避免修改API。但是随着业务需求的变更,API接口的变化几乎是无法避免的。
当业务需求变更的时候,可以这样选择:
通常情况下,我们会选择第三种方式来实现API接口的变更。