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

    xiaoxiao2025-10-09  9

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

    PaaS学习笔记目录

    PaaS基础学习(1)

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

    PaaS优点与限制(3)

    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/users Header: none Response: [ {'id':123, 'name':'a'}, {'id':124, 'name':'b'} ] - http://example.com/users/123 Header: none Response: {'id':123, 'name':'a'} - http://example.com/users?name=b Header: none Response: [ {'id':124, 'name':'b'} ]

    PUT 更新资源(不可缓存)

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

    POST 创建新资源(不可缓存)

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

    9. 元服务

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

    10. 瘦Web客户端

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

    11. 胖Web客户端

    诸如SproutCore(http://SproutCore.com)和Cappucino(http://www.Cappucinoproject.org)可以作为数据绑定的构建模块。 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 <Void,Void,String>{ @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(); 相关资源:python入门教程(PDF版)
    最新回复(0)