本篇文章給大家談談api自動生成在線文檔,以及java直接生成api文檔工具對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
今天給各位分享api自動生成在線文檔的知識,其中也會對java直接生成api文檔工具進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!
本文目錄一覽:
如何使 WebAPI 自動生成漂亮又實用在線API文檔
1.1 SwaggerUI
SwaggerUI 是一個簡單的Restful API 測試和文檔工具。簡單、漂亮、易用(官方demo)。通過讀取JSON 配置顯示API. 項目本身僅僅也只依賴一些 html,css.js靜態文件. 你可以幾乎放在任何Web容器上使用。
1.2 Swashbuckle
Swashbuckle 是.NET類庫,可以將WebAPI所有開放的控制器方法生成對應SwaggerUI的JSON配置。再通過SwaggerUI 顯示出來。類庫中已經包含SwaggerUI 。所以不需要額外安裝。
2.快速開始
創建項目 OnlineAPI來封裝百度音樂服務(示例下載) ,通過API可以搜索、獲取音樂的信息和播放連接。
我盡量
刪除一些我們demo中不會用到的一些文件,使其看上去比較簡潔。
WebAPI 安裝 Swashbuckle
Install-Package Swashbuckle
代碼注釋生成文檔說明。
Swashbuckle 是通過生成的XML文件來讀取注釋的,生成 SwaggerUI,JSON 配置中的說明的。
安裝時會在項目目錄 App_Start 文件夾下生成一個 SwaggerConfig.cs 配置文件,用于配置 SwaggerUI 相關展示行為的。如圖:
將配置文件大概99行注釋去掉并修改為
c.IncludeXmlComments(GetXmlCommentsPath(thisAssembly.GetName().Name));
并在當前類中添加一個方法
/// <summary
/// </summary
/// <param name="name"</param
/// <returns</returns
protected static string GetXmlCommentsPath(string name)
{
return string.Format(@"{0}\bin\{1}.XML", AppDomain.CurrentDomain.BaseDirectory, name);
}
緊接著你在此Web項目屬性生成選卡中勾選 “XML 文檔文件”,編譯過程中生成類庫的注釋文件
添加百度音樂 3個API
訪問 lt;youhost/swagger/ui/index,最終顯示效果
我們通過API 測試API 是否成功運行
3.添加自定義HTTP Header
在開發移動端 API時常常需要驗證權限,驗證參數放在Http請求頭中是再好不過了。WebAPI配合過濾器驗證權限即可
首先我們需要創建一個 IOperationFilter 接口的類。IOperationFilter
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.Description;
using System.Web.Http.Filters;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
public class HttpHeaderFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry
schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters == null) operation.parameters = new
List<Parameter();
var filterPipeline =
apiDescription.ActionDescriptor.GetFilterPipeline();
//判斷是否添加權限過濾器
var isAuthorized = filterPipeline.Select(filterInfo =
filterInfo.Instance).Any(filter = filter is IAuthorizationFilter);
//判斷是否允許匿名方法
var allowAnonymous =
apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute().Any();
if (isAuthorized !allowAnonymous)
{
operation.parameters.Add(new Parameter
{
name = "access-key",
@in = "header",
description = "用戶訪問Key",
required = false,
type = "string"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法類添加一行注冊代碼
c.OperationFilter<HttpHeaderFilter();
添加Web權限過濾器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Http.Controllers;
using Newtonsoft.Json;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class AccessKeyAttribute : AuthorizeAttribute
{
/// <summary
/// 權限驗證
/// </summary
/// <param name="actionContext"</param
/// <returns</returns
protected override bool IsAuthorized(HttpActionContext actionContext)
{
var request = actionContext.Request;
if (request.Headers.Contains("access-key"))
{
var accessKey = request.Headers.GetValues("access-key").SingleOrDefault();
//TODO 驗證Key
return accessKey == "123456789";
}
return false;
}
/// <summary
/// 處理未授權的請求
/// </summary
/// <param name="actionContext"</param
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
var content = JsonConvert.SerializeObject(new {State = HttpStatusCode.Unauthorized});
actionContext.Response = new HttpResponseMessage
{
Content = new StringContent(content, Encoding.UTF8, "application/json"),
StatusCode = HttpStatusCode.Unauthorized
};
}
}
}
在你想要的ApiController 或者是 Action 添加過濾器
[AccessKey]
最終顯示效果
4.顯示上傳文件參數
SwaggerUI 有上傳文件的功能和添加自定義HTTP Header 做法類似,只是我們通過特殊的設置來標示API具有上傳文件的功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Description;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class UploadFilter : IOperationFilter
{
/// <summary
/// 文件上傳
/// </summary
/// <param name="operation"</param
/// <param name="schemaRegistry"</param
/// <param name="apiDescription"</param
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (!string.IsNullOrWhiteSpace(operation.summary) operation.summary.Contains("upload"))
{
operation.consumes.Add("application/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
@in = "formData",
required = true,
type = "file"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法類添加一行注冊代碼
c.OperationFilter<UploadFilter();
API 文檔展示效果
Wisdom Tool REST Client可以自動化測試RESTful API,可以大幅度提高接口開發及測試的工作效率。
方法/步驟
在開源社區Github上下載REST Client工具,restclient-1.0.jar
雙擊jar包,或者運行命令java -jar restclient-1.0.jar。這時會顯示出工具的主界面。
在工具Request選項欄里添加RESTful API接口的請求信息,如URL,HTTP Method,Body,Header,Cookie等信息。
點擊【Start】按鈕,執行HTTP請求。請求結束會自動跳轉至Response選項欄,得到完整的Response信息。
選擇History選項欄,這里會記錄RESTful API的請求和響應等記錄信息。
在Test菜單欄里運行【Start Test】,此時會自動執行列表里記錄的所有API。自動化測試這些API。
API執行完畢工具會在默認瀏覽器里打開自動化測試報告。
使用中遇到問題可以Email聯系作者,或者在Help菜單里點擊【Help Contents】選項,查看幫助文檔。
如何使用javadoc命令生成api文檔,文檔注釋
使用javadoc命令生成api文檔:
創建java源文件包。java文件都是存放在一個package包中,這樣方便對java文件進行操作和區分,首先在磁盤上創建文件夾一樣的方式創建package包。
創建java源文件。在包下,創建與文件名相同的java源文件,輸入一些文檔注釋,這些文檔注釋用于自動的api文件進行說明使用。
進入java源文件目錄。通過cd等windows命令進入java源文件包所在的磁盤位置。
查看javadoc命令使用說明。如果是第一次使用javadoc命令,可以通過javadoc -help命令查看javadoc使用說明。
開始創建api文件。使用命令輸入javadoc -d javaapi -header 測試的API -doctitle 這是我的第一個文檔注釋 -version -author javadoc/Hello.java 進行文檔生成。-d:文件存儲位置; -head:文件頭部名稱; -version:顯示版本; -author:顯示作者; javadoc/Hello.java 處理的文件包以及java源文件。
查看生成的api文件。創建成功之后,就會自動創建指定的文件夾下生成api文件。打開index.html就是api文件的入口。
Python API文檔生成記錄
我是一個程序員,文檔是個很頭疼的東東。一直在找一個對于自己來說好用一些的生成文檔的工具,前一陣找到了Markdown,相當不錯的寫作工具,最近一直在使用。最近公司要求生成內部API文檔,寫起來很麻煩,特別是生成word文檔,需要的各種格式調整,費時費力。我使用Markdown寫了一個版本,但是其他人都用word寫的,無法整合,于是我在網上不停的尋找,終于讓我找到了,Justmd + Markdown + Python + Mkdocs , 這個組合,簡直是無與倫比啊。
簡單的說明一下:
安裝完上述工具后就可以使用Markdown工具進行寫作了,根據需要可以寫多個Markdown文檔,統一寫完后,放在同一個目錄下面。
然后在命令行中生成Mkdocs目錄
上面是2個主題的效果圖。
然后在瀏覽器中訪問 就可以看到相應的文檔了。
基本介紹就到這里了,如果有任何問題,可以給我留言大家一起學習。
后記:
Mkdocs還可以生成靜態頁面,命令如下:
生成 的靜態頁面在同目錄下:site文件夾
如何生成RestFul Api文檔
Web API文檔工具列表
Swagger ——Swagger框架可以通過代碼生成漂亮的在線API,甚至可以提供運行示例。支持Scala、Java、Javascript、Ruby、PHP甚至 Actionscript 3。在線 Demo 。
I/O Docs ——I/O Docs是一個用于RESTful Web APIs的交互式文檔系統。使用 JSON 模型根據資源、方法和參數定義 APIs。I/O Docs 將生成 JavaScript 客戶端接口,可通過這些接口來調用系統。服務器端基于 Node.js 開發。在線Demo
apiary.io ——能夠快速啟動和運行文檔,包括GitHub集成和I/O驗證——更多建議可以前往Reddit查看上關于 Siyfion討論。
Docco ——Docco是一個快速而隨意、hundred-line-long、迭代程序風格的文檔生成器。它會以HTML的方式顯示評論和代碼。
Dexy ——非常靈活的一款文檔工具,支持任何語言編寫的API。
Doxygen ——Doxgen可以從一套歸檔源文件開始,生成HTML格式的在線類瀏覽器,或離線的LATEX、RTF參考手冊。對于未歸檔的源文件,也可以通過配置Doxygen來提取代碼結構。 更多建議可以前往Reddi上查看 gkumar007相關討論。
TurnAPI ——是一款付費的文檔API工具。里面包含了智能WIKI編輯器、基于標準的Markdown、文檔分支、還可以與Git、SVN、Mercurial同步、整潔的主題、友好的界面。
以上僅是作者在實踐中發現的一些很好的工具,如果你有更好的建議或工具推薦,歡迎與我們分享。

如何生成api文檔,初學者請不吝賜教
(1) 首先要理解,什么是Android,如果讀者通過本書的第一章學習初步了解了 Android,若想進一步學習和了解,建議仔細閱讀這個文檔中的 “What is Android”。
(2) 閱讀 “Anatomy of an Android Application” 能夠知道一個 Android 應用中到底都有些什么東西,如果你讀完這個文檔還不是很清楚的話也沒有關系,本書第6章會詳細介紹 Android 的組成部分和各個部分所扮演的角色。
(3) 接著可以讀一下,“Development Tools”一節的內容,其中會介紹 SDK 中包含的一些工具及工具的作用,但是其介紹的比較簡單,我們后面會詳細講解各個工具的作用。
關于api自動生成在線文檔和java直接生成api文檔工具的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
api自動生成在線文檔的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于java直接生成api文檔工具、api自動生成在線文檔的信息別忘了在本站進行查找喔。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。