总的思想:
将后台的服务与前台的 js 函数签名自动同步,一个服务由开发者在一个地方进行维护。
受到博客园文章的影响:http://www.cnblogs.com/wzcheng/archive/2010/05/20/1739810.html
服务方法的自动暴露与代理js函数的自动生成
function SetPhotoShareMode()
{
var tPhotoID = $id("Photo_ID").innerText;
var tShareMode = $("#SelectShareMode").val();
if (tShareMode=="NotSet")
{
alert("没有选择共享属性!");
return;
}
if (confirm("此操作将影响照片的共享性,请确认是否执行?","执行","取消"))
{
$.post("/AjaxServer/Server.ashx?service=photo&method=SetShareMode", {id:tPhotoID,ShareMode:tShareMode }, function(data){ ShowJSONMsg(data);} );
}
}
AjaxServer/Server.ashx?service=photo&method=SetShareMode&format=js
== photo/SetShareMode.javascript
.javascript 为虚拟文件,最终指向 AjaxServer/Server.ashx?service=photo&method=SetShareMode&format=js
而上面的服务在 Format=js 时自动生成包装其 SetShareMode 的 js 函数;
客户端的应用:
1、将上面的 .javascript 虚拟文件插入网页,这就是自动生成的js文件
2、在页面上使用js的 SetShareMode(photoid,sharemode); 方法调用后台的服务即可。
API文档的自动化与同步:
所以客户端的任务就是一个:只需要知道一个 js 方法如何使用就行了。
如果不知道如何使用,使用 AjaxServer/Server.ashx?service=photo&method=SetShareMode&format=api 即可调出参考
当然,后台的所有服务应该有一个总的 api 可供参考,如此,则前台人员随时可以有完整的文档可以看。
文档的编写应该由程序员自己完成,就写在自己开发的类当中,与代码一起编辑。自己写的东西自己看,系统再准备一个测试工具,提供给程序查阅自己的程序,随时保证代码正确,并且文档正确。
api如何保证安全呢?
在交付后,采用系统的一个变量,指示一下系统当前的状态,如果是发布状态,就不要出现文档。
在应用程序出现问题后,如果需要查看api文档,登录应用程序的后台,将系统的状态设置一下即可。