『壹』 為什麼很多web應用的api都用json開發,和gsoap+webservice相比,它有哪些優缺點
json和soap+webservice是一種數據交互格式,目前所有的平台都對他們進行支持。json是以鍵值對的形式展現的長串,webservice交互的數據多為xml,就可讀性和可擴展性而言,兩種方式不相上下。編碼的方便程度上json要稍微占點優勢,沒有xml那種多於的標簽對。客戶端在使用json串的的時候,只需要eval(),eval這個函數很多語言都有,比如js,as 等等。在維護方面維護一段xml串比一段json我想難度要大點
『貳』 web開發百度地圖JS api,地圖怎麼設置連續顯示
獲取代碼如下:(注意:通常我們在網頁中只要插入以下代碼,小蟲標注出來,其餘的可不用。)
1.在<head></head>間插入下面代碼:這是樣式和JS腳本。
<!--引用網路地圖API-->
<style type="text/css">
html,body{margin:0;padding:0;}
.iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap}
.iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word}
</style>
<script type="text/javascript" src="http://api.map..com/api?key=&v=1.1&services=true"></script>
2.在<body></body>間需要顯示地圖的位置放入以下代碼:(該代碼調用地圖)
<!--網路地圖容器-->
<div style="width:697px;height:550px;border:#ccc solid 1px;" id="dituContent"></div>
3.以下代碼放在頁面最底端(其實可放在頁面任意位置。)
<script type="text/javascript">
//創建和初始化地圖函數:
function initMap(){
createMap();//創建地圖
setMapEvent();//設置地圖事件
addMapControl();//向地圖添加控制項
addMarker();//向地圖中添加marker
}
//創建地圖函數:
function createMap(){
var map = new BMap.Map("dituContent");//在網路地圖容器中創建一個地圖
var point = new BMap.Point(115.949652,28.693851);//定義一個中心點坐標
map.centerAndZoom(point,18);//設定地圖的中心點和坐標並將地圖顯示在地圖容器中
window.map = map;//將map變數存儲在全局
}
//地圖事件設置函數:
function setMapEvent(){
map.enableDragging();//啟用地圖拖拽事件,默認啟用(可不寫)
map.enableScrollWheelZoom();//啟用地圖滾輪放大縮小
map.enableDoubleClickZoom();//啟用滑鼠雙擊放大,默認啟用(可不寫)
map.enableKeyboard();//啟用鍵盤上下左右鍵移動地圖
}
//地圖控制項添加函數:
function addMapControl(){
//向地圖中添加縮放控制項
var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_nav);
//向地圖中添加縮略圖控制項
var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});
map.addControl(ctrl_ove);
//向地圖中添加比例尺控制項
var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
map.addControl(ctrl_sca);
}
//標注點數組
var markerArr = [{title:"百恆網路",content:"電話:0791-88117053<br/>手機:15079002975",point:"115.950312|28.693447",isOpen:1,icon:{w:23,h:25,l:46,t:21,x:9,lb:12}}
];
//創建marker
function addMarker(){
for(var i=0;i<markerArr.length;i++){
var json = markerArr[i];
var p0 = json.point.split("|")[0];
var p1 = json.point.split("|")[1];
var point = new BMap.Point(p0,p1);
var iconImg = createIcon(json.icon);
var marker = new BMap.Marker(point,{icon:iconImg});
var iw = createInfoWindow(i);
var label = new BMap.Label(json.title,{"offset":new BMap.Size(json.icon.lb-json.icon.x+10,-20)});
marker.setLabel(label);
map.addOverlay(marker);
label.setStyle({
borderColor:"#808080",
color:"#333",
cursor:"pointer"
});
(function(){
var index = i;
var _iw = createInfoWindow(i);
var _marker = marker;
_marker.addEventListener("click",function(){
this.openInfoWindow(_iw);
});
_iw.addEventListener("open",function(){
_marker.getLabel().hide();
})
_iw.addEventListener("close",function(){
_marker.getLabel().show();
})
label.addEventListener("click",function(){
_marker.openInfoWindow(_iw);
})
if(!!json.isOpen){
label.hide();
_marker.openInfoWindow(_iw);
}
})()
}
}
//創建InfoWindow
function createInfoWindow(i){
var json = markerArr[i];
var iw = new BMap.InfoWindow("<b class='iw_poi_title' title='" + json.title + "'>" + json.title + "</b><div class='iw_poi_content'>"+json.content+"</div>");
return iw;
}
//創建一個Icon
function createIcon(json){
var icon = new BMap.Icon("http://map..com/image/us_cursor.gif", new BMap.Size(json.w,json.h),{imageOffset: new BMap.Size(-json.l,-json.t),infoWindowOffset:new BMap.Size(json.lb+5,1),offset:new BMap.Size(json.x,json.h)})
return icon;
}
initMap();//創建和初始化地圖
</script>
當然,如果你想偷懶,將以上對應代碼全放在<body></body>間也是沒問題的,呵呵。
『叄』 web前端怎麼調用api介面
1、首先需要確定第三方的介面的基本信息:地址、請求方式,參數、返回值,介面模式這里第三方的介面是restful風格的,採用get請求。
『肆』 web api是什麼
Web API是網路應用程序介面。
今天的web計算平台包含了廣泛的功能,其中的大部分均可以通過API(應用程序編程介面)訪問。從簡
單的社會書簽服務del.icio.us,到復雜得多的amazon s3'全虛擬化存儲平台,想想能用這些web api做點什麼,真是驚人。
web平台歸為6個基本設施,並簡要概述些相關產品。其間的線索是這些產品都提供了API,這意味者他們本身可以被其他服務整合。
存儲服務:存儲服務關注抽象化和虛擬化存儲。這個領域的領頭羊是amazon s3,在我的article in web 2.0journal中對其曾有較深入的探討。對開發者而言,S3提供了極其精簡抽象的如哈希表之類的API,允許你輕松存取信息。
另一個有意思的服務是openemy,它提供了類似於文件系統介面的api,但增加了給文件標簽的能力。今
年早些時候,TechCrunch剖析了其他一些在線存儲服務。但至今我們還沒看到傳說中顛覆性的存儲服務GDrive(來自google)和LiveDrive(來自微軟),他們很大可能都會提供api。
消息服務:消息服務在概念上類似於傳統意義上的中間件。由於技術和商業上的復雜性,它們還沒有被大規模開發。短期內可見的基於web的通訊服務是Amazon Simple Queue Service。這個服務使得任意應用間安全和可擴展的基於隊列的通訊更為便利。
計算服務:目前還沒有一個一般的可以通過api訪問的web計算服務黑盒,但有不少技術指向這個方向。一個是alexavertical search platform,在下面的搜索服務小節會提及更多,第二個是網格計算,比如 sungrid,datasynapse's gridserver或者platform's symphony。
在API里封裝任意的計算任務是個相當具挑戰性的任務,也許還要很多年這種服務才會廣泛流行。
信息服務:信息服務提供海量特定的信息。包括像Google Maps API的地理數據,像Amazon E-Commerce,Amazon historcal Pricing Services的產品數據和最新發布的Yahoo!answer's API登。這些服務的共同點是它們都提供
簡單的API來訪問海量數據,可能催生孤立信息間的不可預知的交叉應用。
搜索服務:因為搜索在web領域的基礎和統治地位,搜索服務構成了新的web基礎架構的關鍵部分。Google search
api是較早的如今已成典型的搜索抽象機制。另一個例子是alexa search platform,它的設計帶動了一系列挑戰google地位的垂直搜索引擎。相當有意思的是從技術上看,alexa search platform更多表現為一個計算服務,不過局限在搜索領域而已。這意味者其他服務的可能性,比如排序服務或者數據轉換服務。
web2.0服務:最後一類寬泛的叫它們web2.0服務,名字不一定切題,但它包含諸如del.icio.us,flickr,basecamp
。John Musser在Programmableweb中編譯了一些非常有影響的api。
這些特定的服務將來會成為上述其他服務的使用者,但當前它們的價值更多體現在它們提供了清晰的,
特定的,簡單的api來查看和改變大家擁有的信息。盡管它們看起來更像分子而非原子,但在當今的web領域里,它們是如此基本的服務,所以我把它們視為構成成分還是很有意義的。
『伍』 騰訊地圖或高德地圖api開發,手機web頁面能實現連續定位嗎
手機上的導航,樓主可以使用騰訊地圖手機版,定位精準、快速、省流量
而且騰訊地圖手機版界面簡潔一目瞭然,操作簡單
綜合能力強 不僅可以進行定位導航 而且包含了打車等便民功能
騰訊地圖的覆蓋面很廣,提供全國400多個城市的地圖瀏覽、地址查詢、興趣點搜索、公交換乘、駕車導航、公交線路及站點查詢等多項服務
幫助用戶搜尋周邊最近的餐館、酒店、加油站等 提供新鮮周全的吃喝玩樂地點信息
而且騰訊地圖將收藏的地點同步到雲端,隨時查看,永不丟失
希望我的回答能幫到你,如有疑問請繼續追問
『陸』 visual studio 2008可以開發web api嗎
usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;publicpartialclassLogin:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedboolcheckText()//檢驗用戶名輸入字元,防止SQL注入{char[]a=txtNum.Text.ToCharArray();for(inti=0;ialert('驗證碼錯誤');location='Login.aspx'");//如果驗證碼錯誤,則將頁面定位到登錄界面}else{if(this.checkText()){if(this.ddlstatus.SelectedValue=="學生")//如果是學生登錄,則調用BaseClass中的CheckStudent方法進行檢驗{//將用戶輸入的密碼加密後與資料庫中的值進行比較stringuser=txtNum.Text.Trim();stringpwd=BaseClass.md5(txtPwd.Text.Trim());if(BaseClass.CheckStudent(user,pwd))//如果通過驗證,從資料庫中查詢出相關記錄值保存,並將頁面跳轉到學生主界面{SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand("select*fromStudentwhereStudentNum='"+txtNum.Text.Trim()+"'",conn);SqlDataReaderread=cmd.ExecuteReader();read.Read();//讀取相關值顯示考生姓名和性別stringstuName=read["StudentName"].ToString();conn.Close();//存儲考生姓名和性別Session["name"]=stuName;Session["ID"]=txtNum.Text.Trim();//Response.Write("");Response.Redirect("student/StudentChose.aspx");}else//如果沒有通過驗證,彈出提示後定位到登錄界面{Response.Write("");}}if(this.ddlstatus.SelectedValue=="教師")//如果是教師登錄,則調用BaseClass中的CheckTeacher方法進行檢驗{//將用戶輸入的密碼加密後與資料庫中的值進行比較stringuser=txtNum.Text.Trim();stringpwd=BaseClass.md5(txtPwd.Text.Trim());if(BaseClass.CheckTeacher(user,pwd))//如果通過驗證,保存相關記錄值後將頁面跳轉到教師管理主界面{Session["Teacher"]=txtNum.Text;Response.Redirect("Teacher/TeacherManage.aspx");}else//如果沒有通過驗證,彈出提示後定位到登錄界面{Response.Write("");}}}}}catch(Exceptionex){MessageBox.Show("不好意思,系統出錯了,原因可能是:"+ex.Message);}}protectedvoidimgExit_Click(objectsender,ImageClickEventArgse){Response.Write("");}protectedvoidlkbtnAdminLogin_Click(objectsender,EventArgse){Response.Redirect("Admin/AdminLogin.aspx");//如果是管理員,則進入管理員登錄界面}}
『柒』 Web開發中怎麼用RESTful做後端API
需要根據業務場景來做吧。
1.舊項目,是自己內部使用,並且是CRUD很頻繁,所以成功滲雀還是失敗,都是以http狀態碼區分
2.新的項目,就是提供sdk給彎遲用戶使用,sdk中封裝了對於API系統的調用,幾乎都是get,post請求,對於model的操作較少,因為涉及到了跨域的問題,就採用了jsonp的形式(關於跨域,後端也可以進行全跨域設置),調用成功還是失敗都交給 前端success回調 ,再根據介面返回的欄位進行叢鬧早成功失敗的區分.
3.不一定要完全遵循restful,因為新項目是二期,sdk等也已經交付用戶使用,檔期緊張,所以採用方案2==