国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > 為現(xiàn)有的網(wǎng)站開(kāi)發(fā)App版,該怎么辦?

為現(xiàn)有的網(wǎng)站開(kāi)發(fā)App版,該怎么辦?

時(shí)間:2023-11-24 12:12:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-11-24 12:12:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

為現(xiàn)有的網(wǎng)站開(kāi)發(fā)App版,該怎么辦?:首先先繞題一下,互聯(lián)網(wǎng)時(shí)代大部分應(yīng)用軟件/產(chǎn)品都是基于“Client/Server”(C/S)或是“Browser/Server”(B/S)的架構(gòu),最早的PC時(shí)代網(wǎng)絡(luò)應(yīng)用主要是C/S的架構(gòu),而在Web流行之后,B/S架構(gòu)是一度成為風(fēng)靡。事實(shí)上B/S的架構(gòu)是C/S架構(gòu)的一個(gè)特例,因?yàn)锽rowser可以視為一種特殊的Client。而如今的移動(dòng)時(shí)代,似乎又回歸C/S的架構(gòu)。即使這兩種架構(gòu)有不小的差異,但是本質(zhì)上是相同/想通的。

回到網(wǎng)站上來(lái)說(shuō),假設(shè)這個(gè)網(wǎng)站叫OnlineSchool吧(最近網(wǎng)絡(luò)學(xué)習(xí)特別火),它是個(gè)B/S架構(gòu),它的通信方式為Browser發(fā)一個(gè)HTTP請(qǐng)求給Server,Server收到HTTP請(qǐng)求(通過(guò)URL地址)后進(jìn)行處理,然后將結(jié)果以HTTP響應(yīng)(HTML文檔)的方式返回給Browser,后者再對(duì)HTML文檔進(jìn)行渲染,這個(gè)過(guò)程被視為一次獨(dú)立的HTTP通信。

App (Client的一種特例) 與 網(wǎng)站的 Server 的工作原理也是類似的 -- App 發(fā)送一個(gè) HTTP 請(qǐng)求給 AgapeWS Server,Server 收到 HTTP 請(qǐng)求(GET, POST, PATCH, DELETE等HTTP動(dòng)詞)后進(jìn)行處理,然后將結(jié)果以HTTP響應(yīng)(響應(yīng)的報(bào)文包含一個(gè)半結(jié)構(gòu)化數(shù)據(jù)模型,通常為 JSON / XML 格式的文檔)的方式返回給App,Client 處理這個(gè) JSON 文檔然后顯示數(shù)據(jù)。

所以需要做的工作如下:

1. 開(kāi)發(fā)一組 APIs(通常不需要網(wǎng)站的數(shù)據(jù)庫(kù)),App 借著這組 API 與 網(wǎng)站的 Server 進(jìn)行HTTP通信。

2. 開(kāi)發(fā) App。

我舉個(gè)具體的實(shí)例(Ruby China社區(qū)網(wǎng)站)來(lái)說(shuō)明以上的原理。

Ruby China社區(qū)網(wǎng)站是一個(gè)討論Ruby相關(guān)技術(shù)的論壇(Forum),整個(gè)網(wǎng)站主要是由許許多多的帖子,或是稱為話題(Topic)組成。

瀏覽器展示某個(gè)話題,需要將URL轉(zhuǎn)換為HTTP請(qǐng)求,比如Browser通過(guò)

Ruby China | Ruby 中那些你繞不過(guò)的「坑」(譯) 這個(gè) URL 給 Ruby China的Server 發(fā)送 HTTP 請(qǐng)求,然后會(huì)收到一個(gè) HTML 網(wǎng)頁(yè)。此外這個(gè)網(wǎng)站還提供一個(gè)

http://ruby-china.org/api/topics/17742.json(若瀏覽器顯示亂碼,請(qǐng)?jiān)O(shè)置為UTF-8格式),iOS/Android App 可以通過(guò)這個(gè)具體的 API 得到一個(gè) JSON 格式的響應(yīng)。

我摘取該JSON響應(yīng)的一部分:

{

"id": 17742,

"title": "Ruby 中那些你繞不過(guò)的「坑」(譯)",

"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": " 大多數(shù) Ruby on Rails 的初學(xué)者們都會(huì)為這個(gè)出色的框架著迷,…"

"hits": 3264,

"user": {

"id": 835,

"login": "zhaowenchina",

},

}

移動(dòng) App 通過(guò)此 JSON 數(shù)據(jù)來(lái)顯示界面。

Ruby China網(wǎng)站提供了一組 API:

Ruby China 來(lái)支持與 Clients 的通信,事實(shí)上Ruby China的 Server 并不需要知道 Client 具體的細(xì)節(jié),因?yàn)?Android 或是 iOS Client 都是通過(guò)相同的 Ruby China API 接口來(lái)通信。

現(xiàn)在具體談?wù)勥@組 API 如何設(shè)計(jì),假設(shè)這個(gè)網(wǎng)站域名為http://onlineschool.com來(lái)著,猜測(cè)需要的大致如下:

1. User 接口,這個(gè)接口支持的操作如注冊(cè)、登錄、登出等操作。

這個(gè)接口的API可以設(shè)計(jì)為

http://onlineschool.com/api/user

當(dāng) Client 需要獲取某個(gè)用戶的信息(ID 為 10010),那么可以對(duì)http://onlineschool.com/api/user/10010.json 地址使用 HTTP GET 請(qǐng)求,OnlineSchool Server發(fā)送回來(lái)的響應(yīng)可能如下:

{

"id": "10010",

"username": "張三"

"last_login_time": "2012-01-01"

"credits": 14

"num_finished_classes": 8

...

}

當(dāng) App 需要更新這個(gè)用戶的信息,比如修改用戶名,Client 可以對(duì)接口

http://onlineschool.com/api/user/10010 發(fā)送HTTP PATCH請(qǐng)求,請(qǐng)求中會(huì)有參數(shù) username = "李四" 這樣的 Key / Value 對(duì),來(lái)告訴Online Server修改該用戶的信息,Server接收到這個(gè)請(qǐng)求后一般會(huì)修改數(shù)據(jù)庫(kù)中用戶的表(Table),當(dāng)然 App 并不需要知道Server到底是怎么做的,也并不需要關(guān)心,只要知道這個(gè) API 協(xié)定的規(guī)則就夠了。類似,如果刪除一個(gè)用戶,App 可以對(duì)接口http://onelineschool.com/api/user/10010 發(fā)送HTTP DELETE請(qǐng)求……

2. Class 接口,這個(gè)接口提供與課程相關(guān)的操作,讀取一個(gè)課程的信息,讀取一組課程的信息,等..,

http://onlineschool.com/api/class

獲取所有課程,一般通過(guò)發(fā)送HTTP GET到這個(gè)接口 http://onlineschool.com/api/class;如果獲取某一個(gè)ID為234的課程,可以發(fā)送 HTTP GET 到這個(gè)接口 http://onlineschool.com/api/class/234,等等…

3. Topic 接口對(duì)應(yīng)于話題...



關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉