浏览器 API

所有 API 请求均为 REST 式样 URL 标准 HTTP 请求。 回应是 JSON 或图像(在提取结果时)。

身份验证

API 使用标准的 HTTP 基本存取身份验证( 请求header 中加入token ) 所有 API 请求将需要包括您的 token 凭据,token有时效性,失效后再次通过接口获取

示例中的token是演示值,其状态会不定时变换,不要用在生产活动中

您可以随时在您的个人中心上找到自己的 API 凭证和使用信息。

后端与前端

浏览器 API专门为前端设计,请在前端调用

浏览器API 相对于 服务器API有哪些区别?

1.浏览器授权token,可访问的接口范围和权限有限,不会返回敏感信息,且有时效性,在浏览器端使用会更安全;

2.浏览器token 受白名单限制,请在 个人中心/域名白名单 中配置白名单;

3.通过服务端API调用接口可获得浏览器token;服务端的token是唯一的,浏览器token可生成多个;

4.多个token在有限期内都是有效的;

5.系统不会保存已生成的浏览器token,丢失后可通过接口或个人中心生成;

JSON 对象错误

我们使用传统的 HTTP 状态,表示 API 请求成功或失败,并在返回的 JSON 对象错误中包括重要的错误信息。

我们努力始终为任何有问题的请求返回 JSON 对象错误。 但是,从理论上来说,总是可能出现内部服务器故障,从而导致非 JSON 错误回应。

属性

status 回应的 HTTP 状态在此重复,以帮助调试。
code FOXPSD 内部错误代码。
msg 人类可读错误消息,旨在帮助调试。

如果您的请求的 HTTP 状态是 200,则不会返回 JSON 对象错误,您可以安全地假设请求总体而言已取得成功。

一些 HTTP 客户端库为 400-599 范围内的 HTTP 状态引发异常。 您将需要捕获这些异常,并适当处理。

HTTP Status 表示
200-299

成功

400-499

请求中提供的信息存在问题(例如,缺少一个参数)。 请查看错误消息,了解如何纠错。

500-599

出现 FOXPSD 内部错误。 请稍候,然后再重新尝试,如果问题依然存在,请及时联系我们。

FOXPSD 内部code 表示的含义

FOXPSD code 表示
10000

成功

10001

失败,可能是参数验证错误,权限错误等等,请开发者自行检查

10002

token 失效,用于重新登录逻辑

错误回应示例

  1. {
  2. code:10001, //状态码
  3. msg:'权限不足', //提示信息
  4. data:null //可能包含的具体内容
  5. }
json

正确回应示例

  1. {
  2. "code": 10000,
  3. "data": {
  4. "sku": "1637826540047353433"
  5. },
  6. "msg": "请求成功"
  7. }
json

API: 图片直传POST https://foxpsd.com/browser/upload

为了获得更好的性能,浏览器端可把图片直传到foxpsd服务器进行图片合成,图片会保留两天

参数

file
file文件
必传
上传图片,file文件,多张图片起名规则为 file1,file2....

结果

code
数字
取值范围为 10000 :操作成功;10001 :操作失败
msg
字符串
信息提示
data
数组

多张图片的数组列表

data[].url
字符串

图片路径

请求演示

  1. for (let i = 0; i < files.length; i++) {
  2. var formData = new FormData();
  3. formData.append('file' + i, files[i]);
  4. let res = await axios.post('https://foxpsd.com/browser/upload', formData, {
  5. headers: {
  6. 'Authorization': 'Basic xxxxxx',
  7. },
  8. });
  9. console.log(res)
  10. }
js
返回结果
  1. {
  2. "code": 10000,
  3. "data": [
  4. {
  5. "originFileName": "1620635484949.png",
  6. "fullPath": "",
  7. "relativePath": "20220618/1655541688517544340.png",
  8. "pubilcPath": "/upload/20220618/1655541688517544340.png",
  9. "filename": "1655541688517544340.png",
  10. "url": "https://foxpsd.com/webps/upload/20220618/1655541688517544340.png"
  11. }
  12. ],
  13. "msg": "请求成功"
  14. }
json

API: 图片 生成图片POST https://foxpsd.com/browser/shengchengtu/save/:订阅sku

此接口用于生成图片,订阅sku,请在 个人中心 / API计数 中查看

参数

psd_sku
字符串
必传
psd 模板的sku值,选择的psd需要满足订阅产品的最大宽度要求
data
数组
必传
name 图层名称,名称必须英文字母或数字,必须以字母开头,传入中文则无法识别
content 有效的图片链接,格式为jpg,jpeg,png
callback
字符串
非必传
开发者自己的服务器回调地址,生成图片后FOXPSD 会根据这个地址发送一条GET请求,并将生成的结果会以参数'&'拼接的方式返回
包含的参数有:
oss 生成的图片路径,图片只在我们服务器中保存七天的时间,请及时存储
sku 图片 的唯一标识sku
msg 信息提示
code 状态码 10000 操作成功 10001 操作失败,操作失败oss 不存在

结果

code
数字
取值范围为 10000 :操作成功;10001 :操作失败
msg
字符串
信息提示
data.sku
字符串

图片 的唯一标识,需要自己单独存储,后面可用于查询结果详情

data.oss
字符串 可能存在

如果订阅的是 500像素-实时预览产品,还会直接返回此结果,可用于展示

请求演示

  1. $.ajax({
  2. type:'POST',
  3. url:'https://foxpsd.com/browser/shengchengtu/save/163765136915264690',
  4. data:JSON.stringify({
  5. "psd_sku":"1637737947373803488",
  6. "data":[
  7. {
  8. "name":"sucai",
  9. "content":"https://yourServer.com/1628674835625.jpg"
  10. },
  11. {
  12. "name":"sucai2",
  13. "content":"https://yourServer.com/1628671976551.jpg"
  14. }
  15. ],
  16. "callback":"https://yourServer.com/test"
  17. }),
  18. headers:{
  19. 'Content-Type': 'application/json',
  20. // 填写你的token 进行身份识别(下面为演示token,请勿用于生产环境)
  21. 'Authorization':'Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  22. },
  23. success(res){
  24. //操作成功
  25. if (res.code == '10000') {
  26. console.log(res)
  27. }else{
  28. console.log(res)
  29. }
  30. },
  31. error(err){
  32. console.log(err)
  33. }
  34. })
js
返回结果
  1. {
  2. "code": 10000,
  3. "data": {
  4. "success": 1,
  5. "msg": "操作成功",
  6. "sku": "1637896425191216816",
  7. //只有支持实时预览的服务才有下面返回值
  8. "oss": "http://xxxxxxx.com/1637200300570/shengchengtu/20211126/163789642619938254.jpg",
  9. "fileName": "163789642619938254.jpg",
  10. "relative": "/163789642619938254.jpg",
  11. },
  12. "msg": "请求成功"
  13. }
json