程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> BlogEngine.Net架構與源代碼分析系列part6:開放API

BlogEngine.Net架構與源代碼分析系列part6:開放API

編輯:關於ASP.NET

MetaWeblog與BlogImporter

一款優秀的Blog系統少不了一些公開的API。BlogEngine.Net實現了標准的MetaWeblog API接口來允許用戶通過客戶端軟件來發布自己的Blog,此外它還實現了將其它Blog系統中的文章(標准格式的BlogML或Rss)導入到BlogEngine.Net中來的BlogImporter接口,在這篇文章裡我將對這些開放部分進行詳細的介紹,對於涉及到的一些相關知識點也給出鏈接或做簡單的描述。

MetaWeblog API使用標准的Http協議封裝的XMLRPC實現(類似於WebService中的Soap協議)

1.首先讓我們了解一下什麼是MetaWeblog API

MetaWeblog API (MWA)是一套編程接口,允許外面的程序能取得和設置Blog文章的文本或屬性。它是建立在XMLRPC接口之上,並且已經有了很多的實現。

2.MetaWeblog API有三個基本的函數規范:

metaWeblog.newPost (blogid, username, password, struct, publish) 返回一個字符串,可能是Blog的ID。

metaWeblog.editPost (postid, username, password, struct, publish) 返回一個Boolean值,代表是否修改成功。

metaWeblog.getPost (postid, username, password) 返回一個Struct。

其中blogid、username、password分別代表Blog的id(注釋:如果你有兩個Blog,blogid指定你需要編輯的blog)、用戶名和密碼。由於篇幅有限,關於MetaWeblog API的更多信息請參考文末的鏈接部分。

3.BlogEngine.Net中的MetaWeblog API的實現分析

BlogEngine.Net的XMLRPC調用主要是由BlogEngine.Core.API.MetaWeblog命名空間下的幾個類型來完成的。

首先客戶端軟件通過Http協議向MetaWeblogHandler提交了一個標准的XML請求,MetaWeblogHandler是一個HttpHandler,之後MetaWeblogHandler執行ProcessRequest來處理這個請求,最後將處理結果再封裝為XML返回給客戶端軟件。

下面讓我對這部分涉及到的幾個類型做一個簡單的介紹:

MetaWeblogHandler:不用說了,處理的主邏輯部分,ProcessRequest是處理的入口點,將一些具體處理的部分委托給一些私有成員,例如:

internal string NewPost(string blogID, string userName, string password,
MWAPost sentPost, bool publish)

XMLRPCRequest:是對一個HttpRequest信息提取以後的封裝,裡面是一些解析XML提取信息的相關屬性與方法,例如遠程調用方法名,參數,文章信息等。

XMLRPCResponse:與XMLRPCRequest是對應的,它的Response方法會將執行結果生成XML並傳遞給HttpResponse之後返回給客戶端。

還有一些類似於MWABlogInfo,例如MWAMediaObject,MWAPost等的結構是對於業務對象類型數據提取信息的封裝,主要是為了交換信息而定義的。

從BlogEngine.Net的實現上看,它支持很多標准的協議,這些協議很多都是基於XML進行通信的,而BlogEngine.Net一般都是通過HttpHandler來處理這些標准的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved