我使用Django框架,将基于Web的客户端和移动本地应用(Android和iOS)消耗以Python编写与验证基于REST的Web服务。
简单的例子是,用户将登录使用电子邮件地址和密码,他取的移动设备上的API密钥,并将其存储,然后使用消耗更多的API的,而不是一次又一次的给用户凭据此API密钥。
我想用TASTYPIE或Django的活塞编写RESTful服务的,但请建议,否则,如果你知道任何更好的解决方案。
但是我的主要重点是在认证部分。 我应该使用OAuth实现身份验证或在具有响应API密钥SSL简单的基本身份验证就足够了。
你可以写与Python标准库RESTful Web服务,第三方库不是绝对必要的。
你应该了解更多关于什么定义一个RESTful服务,并开始自己实现它。
对于它的价值,我使用CherryPy的是在几个项目中光框架。 它的简单和易于使用。 该网站甚至有一个关于如何在你的应用程序中实现REST部分。
我受够了API密钥交换来完成它,就像你说的和使用SSL。 工作得很好。 还有一些注意事项,使HTTPS请求权工作在Android上。
private static HttpClient newHttpClient() {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);
SSLSocketFactory sf = new EasySSLSocketFactory(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", sf, 443));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
return new DefaultHttpClient(ccm, params);
}
我用的oauth2,这是简单的比OAUTH实现,但需要SSL实际上使其固定。
因为我用DJANGO REST框架 ,你可以找到设置, 在这里 。
文章来源: RESTFUL web services consumed by web and native mobile apps with authentication in python using django framework