有字库接口文档

由于中文字体文件过大,有字库采用“按需截取”(根据页面内容把字体中不需要的字型删除掉)的方案,将中文字体压缩成和英文字体一样小巧玲珑。

“按需截取”与“整套嵌入”方案相比:
  • (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<T>内容的集合

请求参数子结构(请求参数中的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格式)

1.4引用字体

@font-face语句拼组格式如下:

  • 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格式)

1.3.2填写Tag参数

参数格式

url = "http://service.webfont.com/webFont/getFontFace";

postStr ="ApiKey= ################################&AccessKey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx &Content=有字库,好字体&Tag=.class1";

备注:请求参数为标准的Post参数格式;

返回结果(Json格式)

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格式)

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<T>选择器及其内容的集合

请求参数子结构(请求参数中的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格式)

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格式)

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,请检查是否填写正确!