‘壹’ 为什么很多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==