15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 为现有的网站开发App版,该怎么办?

为现有的网站开发App版,该怎么办?

时间:2023-11-24 12:12:01 | 来源:网站运营

时间:2023-11-24 12:12:01 来源:网站运营

为现有的网站开发App版,该怎么办?:首先先绕题一下,互联网时代大部分应用软件/产品都是基于“Client/Server”(C/S)或是“Browser/Server”(B/S)的架构,最早的PC时代网络应用主要是C/S的架构,而在Web流行之后,B/S架构是一度成为风靡。事实上B/S的架构是C/S架构的一个特例,因为Browser可以视为一种特殊的Client。而如今的移动时代,似乎又回归C/S的架构。即使这两种架构有不小的差异,但是本质上是相同/想通的。

回到网站上来说,假设这个网站叫OnlineSchool吧(最近网络学习特别火),它是个B/S架构,它的通信方式为Browser发一个HTTP请求给Server,Server收到HTTP请求(通过URL地址)后进行处理,然后将结果以HTTP响应(HTML文档)的方式返回给Browser,后者再对HTML文档进行渲染,这个过程被视为一次独立的HTTP通信。

App (Client的一种特例) 与 网站的 Server 的工作原理也是类似的 -- App 发送一个 HTTP 请求给 AgapeWS Server,Server 收到 HTTP 请求(GET, POST, PATCH, DELETE等HTTP动词)后进行处理,然后将结果以HTTP响应(响应的报文包含一个半结构化数据模型,通常为 JSON / XML 格式的文档)的方式返回给App,Client 处理这个 JSON 文档然后显示数据。

所以需要做的工作如下:

1. 开发一组 APIs(通常不需要网站的数据库),App 借着这组 API 与 网站的 Server 进行HTTP通信。

2. 开发 App。

我举个具体的实例(Ruby China社区网站)来说明以上的原理。

Ruby China社区网站是一个讨论Ruby相关技术的论坛(Forum),整个网站主要是由许许多多的帖子,或是称为话题(Topic)组成。

浏览器展示某个话题,需要将URL转换为HTTP请求,比如Browser通过

Ruby China | Ruby 中那些你绕不过的「坑」(译) 这个 URL 给 Ruby China的Server 发送 HTTP 请求,然后会收到一个 HTML 网页。此外这个网站还提供一个

http://ruby-china.org/api/topics/17742.json(若浏览器显示乱码,请设置为UTF-8格式),iOS/Android App 可以通过这个具体的 API 得到一个 JSON 格式的响应。

我摘取该JSON响应的一部分:

{

"id": 17742,

"title": "Ruby 中那些你绕不过的「坑」(译)",

"created_at": "2014-03-08T15:51:27.447+08:00",

"updated_at": "2014-03-14T19:54:35.745+08:00",

"replied_at": "2014-03-14T19:54:35+08:00",

"replies_count": 56,

"node_name": "Ruby",

"node_id": 1,

"last_reply_user_id": 11729,

"last_reply_user_login": "chaishao",

"body": " 大多数 Ruby on Rails 的初学者们都会为这个出色的框架着迷,…"

"hits": 3264,

"user": {

"id": 835,

"login": "zhaowenchina",

},

}

移动 App 通过此 JSON 数据来显示界面。

Ruby China网站提供了一组 API:

Ruby China 来支持与 Clients 的通信,事实上Ruby China的 Server 并不需要知道 Client 具体的细节,因为 Android 或是 iOS Client 都是通过相同的 Ruby China API 接口来通信。

现在具体谈谈这组 API 如何设计,假设这个网站域名为http://onlineschool.com来着,猜测需要的大致如下:

1. User 接口,这个接口支持的操作如注册、登录、登出等操作。

这个接口的API可以设计为

http://onlineschool.com/api/user

当 Client 需要获取某个用户的信息(ID 为 10010),那么可以对http://onlineschool.com/api/user/10010.json 地址使用 HTTP GET 请求,OnlineSchool Server发送回来的响应可能如下:

{

"id": "10010",

"username": "张三"

"last_login_time": "2012-01-01"

"credits": 14

"num_finished_classes": 8

...

}

当 App 需要更新这个用户的信息,比如修改用户名,Client 可以对接口

http://onlineschool.com/api/user/10010 发送HTTP PATCH请求,请求中会有参数 username = "李四" 这样的 Key / Value 对,来告诉Online Server修改该用户的信息,Server接收到这个请求后一般会修改数据库中用户的表(Table),当然 App 并不需要知道Server到底是怎么做的,也并不需要关心,只要知道这个 API 协定的规则就够了。类似,如果删除一个用户,App 可以对接口http://onelineschool.com/api/user/10010 发送HTTP DELETE请求……

2. Class 接口,这个接口提供与课程相关的操作,读取一个课程的信息,读取一组课程的信息,等..,

http://onlineschool.com/api/class

获取所有课程,一般通过发送HTTP GET到这个接口 http://onlineschool.com/api/class;如果获取某一个ID为234的课程,可以发送 HTTP GET 到这个接口 http://onlineschool.com/api/class/234,等等…

3. Topic 接口对应于话题...



关键词:

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭