成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

達觀數據:用好ngResource和postman,提高你的開發調試效率

開發 開發工具
本文將主要從AngularJS下Resource與RESTful 接口初探,和調試工具postman的使用介紹這兩個方面,和大家分享方便開發與維護的技巧工具。

本文將主要從AngularJS下Resource與RESTful 接口初探,和調試工具postman的使用介紹這兩個方面,和大家分享方便開發與維護的技巧工具。如有不當之處,還請交流指正。

技巧1:減少開發與運維難度,AngularJS下Resource與RESTful 接口初探

現代的項目中前端頁面展現的數據多數是動態變化的,展示數據會涉及到網絡請求,從后臺拿取數據,前端進行展示。最初的是ajax 請求,它的步驟原理如下:

創建過程有如下步驟:

  • 創建一個XMLHttpRequest 對象。(不同的瀏覽器,方法不一樣,可以檢查瀏覽器支持情況)
  • 使用 XMLHttpRequest 對象的 open() 和 send() 方法,建立與服務器的鏈接并發送請求。
  • 請求被發送到服務器時,我們需要執行一些基于響應的任務。就是回調函數。每當 readyState 改變時,就會觸發 onreadystatechange 事件。

readyState(5個狀態) 屬性存有 XMLHttpRequest 的狀態信息。根據readyState和status的值,使用 XMLHttpRequest 對象的 responseText 或 responseXML 屬性,獲得來自服務器的響應。

這個過程還是比較繁瑣,后來就出現了jQuery, 極大地簡化了 JavaScript 編程。jQuery get() 和 post() 方法用于通過 HTTP GET 或 POST 請求從服務器請求數據,調用形式如:$.get(URL,callback) 或者$.post(URL,data,callback);

AngularJS是一款優秀的前端JS框架,已經被用于Google的多款產品當中。AngularJS有著諸多特性,最為核心的是:MVW(Model-View-Whatever)、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等等。而對于網絡請求,$http幾乎是所有ng開發中,都會用到的服務。如果接口不是很多,直接使用$resource服務即可,但是對于很多的后端請求接口,那就很有必要使用ngResource服務。該服務創建資源對象的工廠,該資源對象允許你與RESTful服務端數據資源進行交互。返回的資源對象擁有提供了高層行為的動作方法,從而無需與底層的$http服務進行交互。具體調用如下:

  1. $resource(url[, paramDefaults][, actions]); 

返回一個資源“類”對象。該對象包含默認資源動作的方法,和可選的自定義的擴展動作。默認集合包含以下動作:

  1. { 'get': {method:'GET'}, 'save': {method:'POST'}, 'query': {method:'GET', isArray:true}, 'remove': {method:'DELETE'}, 'delete': {method:'DELETE'} }; 

在實際的項目開發中還可以進行自定義的拓展,例如:

  1. function resourceConfig($resourceProvider) { 
  2. $resourceProvider.defaults.actions = { 
  3.      saveArray: { 
  4.      method: 'POST', 
  5.      isArray: true 
  6.      }, 
  7.      modify: { 
  8.      method: 'PATCH' 
  9.      }, 
  10.      create: { 
  11.      method: 'POST' 
  12.      }, 
  13.      save: { 
  14.      method: 'POST' 
  15.      }, 
  16.      get: { 
  17.      method: 'GET' 
  18.      }, 
  19.      query: { 
  20.      method: 'GET', 
  21.      isArray: true 
  22.      }, 
  23.      update: { 
  24.      method: 'PUT' 
  25.      }, 
  26.      delete: { 
  27.      method: 'DELETE' 
  28.      }, 
  29.      verify: { 
  30.      method: 'POST' 
  31.      } 
  32.      }; 

調用這些方法將以特定的http方法,目標和參數調用ng.$http。數據從服務器返回后,該對象將是該資源類的一個實例。save,remove,delete動作($前綴)可作為該對象的方法使用。這允許你很容易地對服務器端數據進行CRUD操作,如:

  1. app.factory('Persons', ['$resource', function($resource) { 
  2. return $resource('/person/:id', null, { 
  3. update: { method:'PUT' } 
  4. }); 
  5. }]); 

現在可以在一個controller中獲取一個person 并更新:

  1. var person = Persons.get({ id: 3}), 
  2. $id = person.id; 
  3. person.content = 'yyy'
  4. Persons.update({ id:$id },person ); 

類對象或實例對象中的動作方法可以用以下參數進行調用:

  1. HTTP GET “類”動作: Resource.action([parameters], [success], [error])  // eg:Person.update({id: xxx}); 
  2. non-GET “類”動作: Resource.action([parameters], postData, [success], [error]) 
  3. non-GET 實例動作: instance.$action([parameters], [success], [error]) //eg:person.$update()  

Success回調以(value, responseHeaders)參數調用。Error回調以(httpResponse)參數回調。

那么接下來問題來了,什么是RESTful Api設計?

REST(表征性狀態傳輸,Representational State Transfer)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構風格。RESTful風格的設計不僅具有更好的可讀性(Human Readable),而且易于做緩存以及服務器擴展。REST風格體現在URL設計上:

  • 每個URL對應一個資源
  • 對資源的不同操作對應于HTTP的不同方法
  • 資源表現形式(representation)通過Accept和Content-Type指定

對資源的操作有如下:

  • GET(SELECT):從服務器取出資源(一項或多項)。
  • POST(CREATE):在服務器新建一個資源。
  • PUT(UPDATE):在服務器更新資源(客戶端提供改變后的完整資源)。
  • PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
  • DELETE(DELETE):從服務器刪除資源。

綜上所述,個人以為無論是ngresouce的使用還是Restful api 設計風格的使用,目的就是提高復用性,資源請求統一配置處理,提高代碼可讀性與服務的拓展性,減少開發與運維難度。

技巧2:跟蹤網頁請求,用好調試工具postman

用戶在開發或者調試網絡程序,需要一些方法來跟蹤網頁請求,Postman在發送網絡HTTP請求方面可以說是Chrome插件類產品中的代表產品之一,使用十分方便,如下是其主界面 :

這里著重說明下post 方法的使用:

請求頭是根據請求參數的形式自動生成的,請求頭中的Content-Type與請求參數的格式之間有關聯關系,比如:

(1)表單提交 form-data,x-www-form-urlencoded

(2)json,xml 等提交,可以在右邊設置請求頭屬性

(3)二進制文件提交

有時候寫接口文檔需要使用到curl語句,或者要求有莫種語言的示例等,Postman也提供了相應的支持,如下:

選擇面板中標的12 后會出現這個面板,其中包含了C 、C# 、Java、 Go 、Python 等主流編程和腳本語言,十分方便。

其他的功能不在此一一列舉,更多有關提高開發效率,與開發調試技巧歡迎關注達觀數據多多交流。

參考資料:

http://www.ruanyifeng.com/blog/2014/05/restful_api.html

https://learning.getpostman.com/getting-started/

作者簡介

郭權:達觀數據Web前端工程師,負責達觀數據前端產品的開發、維護、優化,升級等具體工作。對數據的展示形式,后端數據交互處理有一定的研究和濃厚的興趣。

【本文為51CTO專欄作者“達觀數據”的原創稿件,轉載可通過51CTO專欄獲取聯系】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2015-07-20 10:54:47

IOS提高效率工具

2012-12-19 20:07:31

markdown

2012-12-19 20:20:32

markdown

2013-07-05 16:08:40

開發效率

2012-12-19 20:14:20

markdown

2012-12-19 20:18:54

markdown

2012-12-19 20:15:51

markdown

2019-11-22 08:52:32

MacEvernoteMWeb

2020-05-06 11:45:08

Mac工具語法

2012-03-06 14:38:23

Visual Stud

2019-07-08 14:45:17

Excel數據分析數據處理

2015-11-02 17:11:38

RelProxyJava開發效率

2023-02-22 17:51:10

VS code插件技巧

2023-04-18 08:01:30

AI寫作時間

2025-04-01 08:12:10

2015-12-15 09:50:12

Linux開發效率工具

2022-09-05 14:17:48

Javascript技巧

2023-11-22 08:26:03

HutoolJava工具集

2017-04-21 12:26:03

數據庫監控團隊效率

2020-10-29 09:06:56

開發工具技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av资源中文在线 | 在线视频一区二区三区 | 欧美日韩不卡合集视频 | 久久国产精品视频 | 久久黄色| 日韩成人免费 | 国产欧美在线一区 | 超碰av在线 | 99久久电影 | 91视频观看| 久久久久久久久久久蜜桃 | 日韩一区av| www操操 | 性做久久久久久免费观看欧美 | 国产精品久久久久久久久久久久久 | 成人在线视频网 | 中文字幕一区二区三区四区五区 | 色爱综合| 欧美一区二区三区大片 | 欧美一级二级三级视频 | 91成人在线视频 | 91久久精品| 国产a区| 国产97碰免费视频 | h视频在线免费 | 欧美激情精品久久久久久变态 | 91久久精品日日躁夜夜躁欧美 | 羞羞视频网页 | www.日韩高清| 国产精品美女久久久久久久网站 | 激情五月综合网 | 成人午夜精品 | 日韩一区二区三区在线观看 | 99热这里都是精品 | 日韩精品久久久久 | 亚洲一区av在线 | 中文字幕亚洲一区二区三区 | 日韩视频在线观看中文字幕 | 久久九九色 | 日韩视频精品在线 | 精品亚洲一区二区三区四区五区高 |