有字庫接口文檔
由于中文字型檔案過大,有字庫采用“按需截取”(根據頁面内容把字型中不需要的字型删除掉)的方案,将中文字型壓縮成和英文字型一樣小巧玲珑。
“按需截取”與“整套嵌入”方案相比:(1)
“按需截取”生成的中文字型隻有十幾K至一百多K,而“整套嵌入”的中文字型一般3M至十幾M,是以頁面響應速度上“按需截取”狂甩“整套嵌入”好幾條街。
(2)
“按需截取”是每一張頁面都配有專屬的字型檔案(字型子集),即每打開一張頁面就會加載與之對應的字型檔案,而"整套嵌入“則是一次加載,整站通用。
有字庫專注于“按需截取“方案的應用及優化,可以根據應用場景為使用者打造全套字型解決方案,不提供“整套嵌入”服務。該文檔即是“按需截取”方案的API調用文檔。程式調用API送出頁面内容,有字庫服務将自動為您生成與内容相對應的專屬字型檔案。當内容在前台顯示時,您隻需要将這個已生成的字型檔案随内容一起加載至頁面,即可實作中文線上字型的應用效果。
一、 靈活模式
該模式的接口沒有傳回值,程式調用接口後不需要等待回調。
不需要程式儲存任何資料,隻管送出内容即可。
當内容展示時,隻需要根據規定格式拼出對應的@font-face語句,然後将拼成的@font-face語句插入頁面head标簽中,即可使内容顯示出指定的字型效果。
注意:送出的參數中,url參數必須唯一(重複則生成的檔案将會互相覆寫。建議:url參數可以用 文章[或産品]ID+所在标簽ID 來實作内容的url參數的唯一性)。
1.可傳遞多個自定義路徑和内容 一次生成[ 異步]
1.1接口方法:CreateBatchWoffWebFontAsync()
1.2請求參數參數字段類型必填描述ApiKeystring是系統規定參數,每個使用者有一個固定ApiKey,用于使用者身份驗證,使用時請注意保密,防止被盜用。 從背景擷取:www.webfont.com/apiKey/index
DatasList是内容的集合
請求參數子結構(請求參數中的Datas集合字段)Datas集合字段類型必填描述Urlstring是自定義存儲目錄路徑。不允許傳遞檔案擴充名,格式:a/b/filename,重複将被覆寫,使用者需要自己确認唯一性
Contentstring是要生成字型的文字内容
AccessKeystring是系統規定參數,從有字庫字型使用頁中"盧教"模式中擷取,$youziku.load 語句中第2個參數即為AccessKey。
1.3請求示例
參數格式
url = "http://service.webfont.com/batchCustomWebFont/createBatchWoffWebFontAsync";
postStr =“ApiKey= ################################
&Datas[0][Content]=有字庫&Datas[0][Url]=my/a&Datas[0][AccessKey]= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&Datas[1][Content]=好字型&Datas[1][Url]=my/b&Datas[1][AccessKey]= yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
備注:請求參數體為标準的Post參數格式 ;如果有多個标簽,隻需按索引拼接即可;索引必須從0開始
傳回結果(Json格式){
"Code": 200,
"ErrorMessage": ""
}
1.4引用字型
@font-face語句拼組格式如下:@font-face
{
font-family:'fontfamilyname';
src:url('http://cdn.repository.webfont.com/webfonts/custompath/{UserKey}/{Url}.bmp') format('woff')
}
font-family的值是由使用者來自定義的;同一頁面,不能有重複的font-family,font-family的值就是定義成的字型的名字,此處定義成什麼名字,前端引用時,就必須也用這個名字。
UserKey是有字庫為每個使用者專門開僻的存儲空間的名字,可以從使用者背景擷取:www.webfont.com/userKey/index
URL即是調用接口時所送出的參數(url)
2響應結果集
2.1結果字段介紹字段結果Code狀态碼
ErrorMessage錯誤消息
2.2結果中的Code狀态碼介紹200請求成功
500有字庫S系統繁忙,請稍後再試!
403有字庫伺服器檢測到目前Datas總數過多,請控制在50個以内!
有字庫伺服器沒有從請求參數中找到任何Datas資料,請檢查!
有字庫伺服器無法識别Post參數,請檢查代碼是否正确!
有字庫無法通過身份驗證,請更新會員或檢查Apikey是否填寫正确!
有字庫無法驗證AccessKey,請檢查是否填寫正确!
二、 語句綁定模式
該模式的接口有傳回值,傳回值需要程式儲存。
當程式調用該模式的接口,送出内容等資訊後,接口就會傳回内容對應的@font-face語句,程式需要将此@font-face語句與内容相對應地儲存起來。當内容展示時,将此@font-face語句與内容一同輸出到前端,即可使内容顯示出指定的字型效果。
注意:該模式的接口不是在頁面打開時調用,而是在内容錄入/産生時調用;當頁面打開時隻需要将現成@font-face語句随内容一起輸出到前端即可。
1)、 單标簽
1.直接傳回所有格式的@fontface
1.1接口方法GetFontFace()
1.2請求參數參數字段類型必填描述ApiKeystring是系統規定參數,每個使用者有一個固定ApiKey,用于使用者身份驗證,使用時請注意保密,防止被盜用。 從背景擷取:www.webfont.com/apiKey/index
AccessKeystring是系統規定參數,從有字庫字型使用頁中“盧教”模式中擷取,$youziku.load 語句中第2個參數即為AccessKey。
例如:$youziku.load("#id1","128c10eec9b647288c01e4f95a1f864e","fontanme");
Contentstring是要生成字型的文字内容
Tagstring否選擇器(标簽的class名或id名)不填寫則直接傳回純@font-face語句,使用者需同時擷取另一傳回值(FontFamily),将FontFamily的值設定到對應标簽下,方能生效;填寫則傳回已設定到對應标簽下的完整語句,自動生效。
UseRanFontFamilybool否是否使用随機産生的font-family。預設值為false(使用原生font-family)。同一個頁面上,每個@font-face語句中的font-family值必須唯一。如果有重複,則重複的@font-face語句中隻有最後一個有效。随機font-family則可以有效防止font-family值重複。
1.3請求示例
1.3.1不填寫Tag參數
參數格式
url = "http://service.webfont.com/webFont/getFontFace";
postStr ="ApiKey=################################& AccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx & Content= 有字庫,好字型";
備注:請求參數為标準的Post參數格式;
傳回結果(Json格式){
"FontFamily": "jdshutongtijian",
"FontFace":
"@font-face
{
font-family: 'jdshutongtijian';
src:url('http://cdn.repository.webfont.com/2/xx.gif');
src:url('http://cdn.repository.webfont.com/2/xx.gif?#iefix')format('embedded-opentype'),
url('http://cdn.repository.webfont.com/2/xx.bmp') format('woff'),
url('http://cdn.repository.webfont.com/2/xx.jpg') format('truetype'),
url('http://cdn.repository.webfont.com/2/xx.png#jdshutongtijian') format('svg');
}",
"Code": 200,
"Tag":"",
"ErrorMessage": ""
}
1.3.2填寫Tag參數
參數格式
url = "http://service.webfont.com/webFont/getFontFace";
postStr ="ApiKey= ################################&AccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx &Content=有字庫,好字型&Tag=.class1";
備注:請求參數為标準的Post參數格式;
傳回結果(Json格式){
"FontFamily": "jdshutongtijian",
"FontFace":
"@font-face
{
font-family: 'jdshutongtijian';
src:url('http://cdn.repository.webfont.com/2/xx.gif');
src:url('http://cdn.repository.webfont.com/2/xx.gif?#iefix')format('embedded-opentype'),
url('http://cdn.repository.webfont.com/2/xx.bmp') format('woff'),
url('http://cdn.repository.webfont.com/2/xx.jpg') format('truetype'),
url('http://cdn.repository.webfont.com/2/xx.png#jdshutongtijian') format('svg');
}
. class1{font-family:'jdshutongtijian'}",
"Code": 200,
"Tag":". class1",
"ErrorMessage": ""
}
2直接傳回流(woff流)的@fontface
2.1接口方法GetWoffBase64StringFontFace()
2.2請求參數(同上1.2)
2.3請求示例
參數格式
url = "http://service.webfont.com/webFont/getWoffBase64StringFontFace";
postStr = "ApiKey= ################################& AccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx &Content= 有字庫,好字型";
備注:請求參數為标準的Post參數格式;
傳回結果(Json格式){
"FontFamily": "jdshutongtijian",
"FontFace":
"@font-face
{
font-family:'jdshutongtijian';
src:url('data:image/bmp;base64,d09GRgABAAAAABfcAA4AAAAAIjwAA…') format('woff');
}",
"Code": 200,
"Tag":"",
"ErrorMessage": ""
}
3響應結果集
3.1結果字段介紹字段結果FontFamily系統生成的FontFamily
FontFace選擇器對應的@fontface語句
Code狀态碼
Tag選擇器(與送出的參數對應)
ErrorMessage錯誤消息
3.2結果中的Code狀态碼介紹200請求成功
500有字庫D系統繁忙,請稍後再試!
有字庫S系統繁忙,請稍後再試!
404有字庫伺服器無法找到該FontId對應的字型,請檢查是否輸入正确!
有字庫伺服器無法提供被禁用字型的服務,請選擇其他字型!
有字庫伺服器無法提供未同意托管協定的字型的服務,請選擇其他字型!
403有字庫伺服器無法識别Post參數,請檢查代碼是否正确!
有字庫無法通過身份驗證,請更新會員或檢查Apikey是否填寫正确!
有字庫無法驗證AccessKey,請檢查是否填寫正确!
2)、 多标簽
1.直接傳回所有格式的@fontface
備注:可傳遞多個标簽和内容一次生成多個@fontface
1.1接口方法:GetBatchFontFace()
1.2請求參數參數字段類型必填描述ApiKeystring是系統規定參數,每個使用者有一個固定ApiKey,用于使用者身份驗證,使用時請注意保密,防止被盜用。 從背景擷取:www.webfont.com/apiKey/index
TagsList是選擇器及其内容的集合
請求參數子結構(請求參數中的Tags集合字段)Tags集合字段類型必填描述AccessKeystring是系統規定參數,從有字庫字型使用頁中"盧教"模式中擷取,$youziku.load 語句中第2個參數即為AccessKey。
Tagstring是選擇器(标簽的class名或id名)
Contentstring是要生成字型的文字内容
UseRanFontFamilybool否是否使用随機産生的font-family。預設值為false(使用原生font-family)。同一個頁面上,每個@font-face語句中的font-family值必須唯一。如果有重複,則重複的@font-face語句中隻有最後一個有效。随機font-family則可以有效防止font-family值重複。
1.3請求示例
參數格式
url = "http://service.webfont.com/batchWebFont/getBatchFontFace";
postStr =“ApiKey= ################################
& Tags[0][Content]=有字庫& Tags[0][Tag]=.class1& Tags[0][AccessKey]= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
& Tags[1][Content]=好字型& Tags[1][Tag]=#id1& Tags[1] [AccessKey]= yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
備注:請求參數體為标準的Post參數格式 ;如果有多個标簽,隻需按索引拼接即可;索引必須從0開始
傳回結果集(Json格式){
"Code": 200,
"FontfaceList": [
{"Tag":".class1",
"FontFace":
"@font-face
{
font-family:'jdshutongtijian';
src:url('http://cdn.repository.webfont.com/19669/xx.gif');
src:url('http://cdn.repository.webfont.com/19669/xx.gif?#iefix')format('embedded-opentype'),
url('http://cdn.repository.webfont.com/19669/xx.bmp') format('woff'),
url('http://cdn.repository.webfont.com/19669/xx.jpg') format('truetype'),
url('http://cdn.repository.webfont.com/19669/xx.png#jdshutongtijian') format('svg');
}
.class1{ font-family:'jdshutongtijian' }",
"FontFamily": "jdshutongtijian"
},
{"Tag": "#id1",
"FontFace":
"@font-face
{
font-family:'jdshutongtijian';
src:url('http://cdn.repository.webfont.com/19669/xx.gif');
src:url('http://cdn.repository.webfont.com/19669/xx.gif?#iefix')format('embedded-opentype'),
url('http://cdn.repository.webfont.com/19669/xx.bmp') format('woff'),
url('http://cdn.repository.webfont.com/19669/xx.jpg') format('truetype'),
url('http://cdn.repository.webfont.com/19669/xx.png#jdshutongtijian') format('svg');
}
#id1{ font-family:'jdshutongtijian' }",
"FontFamily": "jdshutongtijian"
}
],
"ErrorMessage": ""
}
2直接傳回僅woff格式的@fontface
2.1接口方法GetBatchWoffFontFace ()
2.2請求參數(同上1.2)
2.3請求示例
參數格式
url = "http://service.webfont.com/batchWebFont/getBatchWoffFontFace";
postStr =“ApiKey= ################################
&Tags[0][Content]=有字庫&Tags[0][Tag]=.class1&Tags[0][AccessKey]= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&Tags[1][Content]=好字型&Tags[1][Tag]=#id1&Tags[1][AccessKey]= yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
備注:請求參數體為标準的Post參數格式 ;如果有多個标簽,隻需按索引拼接即可;索引必須從0開始
傳回結果集(Json格式){
"Code": 200,
"FontfaceList": [
{"Tag":".class1",
"FontFace":
"@font-face
{
font-family:'jdshutongtijian';
src:url('http://cdn.repository.webfont.com/19669/xx.bmp') format('woff');
}
.class1{ font-family:'jdshutongtijian' }",
"FontFamily": "jdshutongtijian"
},
{"Tag": "#id1",
"FontFace":
"@font-face
{
font-family:'jdshutongtijian';
src:url('http://cdn.repository.webfont.com/19669/xx.bmp') format('woff');
}
#id1{ font-family:'jdshutongtijian' }",
"FontFamily": "jdshutongtijian"
}
],
"ErrorMessage": ""
}
3響應結果集
3.1結果字段介紹字段結果FontfaceList選擇器對應的@fontface語句集合
Code狀态碼
ErrorMessage錯誤消息
3.2結果中的FontfaceList介紹FontFamily系統生成的FontFamily
Tag選擇器(與送出的參數對應)
FontFace選擇器對應的@fontface語句
3.3結果中的Code狀态碼介紹200請求成功
500有字庫D系統繁忙,請稍後再試!
有字庫S系統繁忙,請稍後再試!
404有字庫伺服器無法找到該FontId對應的字型,請檢查是否輸入正确!
有字庫伺服器無法提供被禁用字型的服務,請選擇其他字型!
有字庫伺服器無法提供未同意托管協定的字型的服務,請選擇其他字型!
403有字庫伺服器檢測到目前Tag總數過多,請控制在50個以内!
有字庫伺服器沒有從請求參數中找到任何Tags資料,請檢查!
有字庫伺服器無法識别Post參數,請檢查代碼是否正确!
有字庫無法通過身份驗證,請更新會員或檢查Apikey是否填寫正确!
有字庫無法驗證AccessKey,請檢查是否填寫正确!