博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在PaaS上开发Web、移动应用(2)
阅读量:7041 次
发布时间:2019-06-28

本文共 3184 字,大约阅读时间需要 10 分钟。

在PaaS上开发Web、移动应用(2)

PaaS学习笔记目录

6. 巨型代码,是指持续不断地向一个应用程序添加功能,不停地增加新的特性如搜索功能、账户管理、博客发布等。

在开发速度以及在适应扩展需求的总体架构之间进行权衡。

  • 新技术的面向服务架构(SOA)在Web应用的复兴
  • 标准技术(例如REST)也让服务更统一和易维护。

7. JSON

JSON(JavaScript Object Notation)是作为在API服务内部传输数据的标准出现的,它可作为替换XML的备选方案之一。

如:
{
“id”:1,
“name”:”Programming for PaaS”,
“price”:123,
“tags”:[“PaaS”,”Programming”]
}

8. REST(表述性状态转移)

REST(Representational State Transfer)是诸如Web应用之类的分布式系统的一种架构模式。

- 通过复用HTTP的基础操作,如GET、POST、PUT以及DELETE,REST已经成为了一种主流服务设计模型。
- REST背后的原则的基本原则就是通过提供一个共享的网络词汇,以一种标准的、可预测的格式来传输资源。
如:一个基于REST的用于管理用户数据的JSON服务:

GET

列出资源(可以被缓存)- http://example.com/usersHeader:  noneResponse:[  {
'id':123, 'name':'a'}, {
'id':124, 'name':'b'}]- http://example.com/users/123Header: noneResponse:{
'id':123,'name':'a'}- http://example.com/users?name=bHeader: noneResponse:[{
'id':124,'name':'b'}]

PUT

更新资源(不可缓存)

- http://example.com/usersHeader:[{
'id':123,'name':'x'},{
'id':124,'name':'y'}]Response: 200 OK- http://example.com/users/123Header: {
'id':123, 'name':'x'}Response: 200 OK- http://example.com/users?name=bHeader:[{
'id':124,'name':'y'}]Response: 200 OK

POST

创建新资源(不可缓存)

- http://example.com/usersHeader:{
'id':125,'name':'c'}Response: 200 OK-http://example.com/users/123 Not used-http://example.com/users?name=b 创建新资源的时候不需要查询字符串DELETE 删除资源(不可缓存)- http://example.com/usersHeader: NoneResponse: 200 OKNote: Deleted all users-http://example.com/users/123Header: NoneResponse: 200 OKNote: Deleted only user 123- http://example.com/users?nmae=bHeader: NoneResponse: 200 OKNote: Deleted all users named b

9. 元服务

元服务是一种基于REST的应用程序,用于为数据的集合提供服务。

10. 瘦Web客户端

元服务可以直接在浏览器中调用。

11. 胖Web客户端

诸如SproutCore()和Cappucino()可以作为数据绑定的构建模块。

SproutCore和Cappucino为我们提供了构建模块,通过一种非常标准的方法将这些基础元素组合在一起,就可以构建现代应用程序。
这些应用无论在Web还是移动客户端都让人感觉到类似桌面应用的效果。

12. 移动客户端的PaaS

iOS

REST的框架:RestKit

Android

采用Java语言的Android本地应用也可以简单快速地访问元服务以及获取数据。

- 自己动手构建,采用Android的异步网络操作
1. 将AsyncTask类扩展为异步任务类
2. 创建一个URLConnection并且将数据转换为字符串
3. 将结果处理为Java对象
Java实例代码:

//通过新的GetRESTData().excute()在一个服务中执行;private class GetRESTData extends AsyncTask 
{
@Override protected String doInBackground(Void... params){ URL url = new URL("http://example.com/users"); URLConnection urlConnection = url.openConnection(); InputStream in = new BufferedInputStream(urlConnection.getInputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String result,line = reader.readLine(); result = line; while((line = reader.readLine())!=null){ result += line; } in.close(); return result; } protected void onPostExecute(String restResult){ //process the JSON string into Java object //and persist it into a SQLite database }}
  • 使用开源或者专有的框架

Android上的REST框架:Restlet

Restlet可以从基于REST的源获取数据时,极大地节省开发者的时间和精力。
RestLet的简单实例:

public interface UserResource{
@Get public User retrieve(); @Put public void store(User user) @Delete public void remove();}ClientResource cr = new ClientResource("http://example.com/users/123");//获取用户对象UserResource resource = cr.wrap(UserResource.class);User user = resource.retrieve();

转载于:https://www.cnblogs.com/lanzhi/p/6467736.html

你可能感兴趣的文章
PLSQL_PLSQL读和写XML文件方式(案例)
查看>>
Asp.Net 网站访问人数及在线人数
查看>>
[转]LCD之调色板
查看>>
第3条:用私有构造器或者枚举类型强化Singleton属性
查看>>
JSON与JSONP
查看>>
关于部署在linux服务器上应用之间连接的问题解决
查看>>
《深入理解Java虚拟机》学习笔记(二)
查看>>
射线投射与碰撞层
查看>>
正则表达式
查看>>
bind this指针
查看>>
paper 135:关于C#泛型的知识点
查看>>
第二十四条:消除非受检警告
查看>>
给阅读的网页作标记
查看>>
vue条件渲染
查看>>
转 MySQL数据库基础
查看>>
Oracle dblink创建
查看>>
python04 while循环
查看>>
web 开发之酷炫--- 酷炫展示
查看>>
ubuntu 解压命令全部
查看>>
Chrome教程(一)NetWork面板分析网络请求
查看>>