研究Dribbble的API及实际应用

Dribbble的API可以调用他们网站上的某些作品,做设计的朋友也许对这个网站非常熟悉,因为这里的作品非常优秀,加入想把他引用到你的网站上,就需要了解他的API有哪些,及如何调用。

推荐一个Dribbble的插件,http://lab.tylergaw.com/jribbble/.这个插件主要是使用官方API的文档来制作的,官方API使用地址:https://dribbble.com/api


;(function($, window, document, undefined) {
'use strict';

$.jribbble = {};

var jsonpGET = function (path, args) {
$.ajax({
type: 'GET',
url: 'http://api.dribbble.com' + path,
data: args[1] || {},
dataType: 'jsonp',
success: function (data) {
if (typeof (data) === 'undefined') {
args[0]({error: true});
}
else {
args[0](data);
}
}
});
};

var methods = {
'getShotById': '/shots/$/',
'getReboundsOfShot': '/shots/$/rebounds/',
'getShotsByList': '/shots/$/',
'getShotsByPlayerId': '/players/$/shots/',
'getShotsThatPlayerFollows': '/players/$/shots/following/',
'getPlayerById': '/players/$/',
'getPlayerFollowers': '/players/$/followers/',
'getPlayerFollowing': '/players/$/following/',
'getPlayerDraftees': '/players/$/draftees/',
'getCommentsOfShot': '/shots/$/comments/',
'getShotsThatPlayerLikes': '/players/$/shots/likes/'
};

var createAPIMethod = function (urlPattern) {
return function () {
var // Convert arguments to a real Array
args = [].slice.call(arguments),

// We run shift() on args here because we don't need to send
// the first argument to jsonpGET.
url = urlPattern.replace('$', args.shift());

jsonpGET(url, args);
};
};

for (var method in methods) {
$.jribbble[method] = createAPIMethod(methods[method]);
}

})(jQuery, window , document);

通过以上代码将API分出多种方法。

调用方式

1.获取一个作品

$.jribbble.getShotById(shotId, callback)

shotID:调用作品的ID

callback:当成功响应式,返回一个参数返回请求的回调内容


var callback = function (shot) {
var html = '';

html += '<a href="' + shot.url + '"><img src="' + shot.image_url + '"></a>';
html += '<h3>' + shot.title + '</h3>';
html += '<i>by <a href="' + shot.player.url + '">' + shot.player.name + '</a></i>';

html += '<ul><li><b>Views:</b> ' + shot.views_count + '</li>';
html += '<li><b>Likes:</b> ' + shot.likes_count + '</li>';
html += '<li><b>Comments:</b> ' + shot.comments_count + '</li>';
html += '<li><b>Rebounds:</b> ' + shot.rebounds_count + '</li></ul>';

$('#shot').html(html);
};

$.jribbble.getShotById(914651, callback);

 

第二种:获取某类列表(popular、everyone、debuts)

$.jribbble.getShotsByList(listName, callback, [pagingOpts])

listName:“popular”, “everyone”, “debuts”

pagingOpts:{page: 1, per_page: 15}

回调函数返回的是对象的合集。

var callback = function (listDetails) {
var html = '';

$.each(listDetails.shots, function (i, shot) {
html += '<li><h3>' + shot.title + '</h3>';
html += '<h4>by ' + shot.player.name + '</h4><a href="' + shot.url + '">';
html += '<img src="' + shot.image_teaser_url + '" ';
html += 'alt="' + shot.title + '"></a></li>';
});

$('#shotsByList').html(html);
}

$.jribbble.getShotsByList('popular', callback, {page: 2, per_page: 10});

演示


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流