API一覧作成

さくらのクラウドのデベロッパーセンターから、APIの一覧を作成する

by bc_rikko

HTML

<script src="https://cdn.rawgit.com/padolsey-archive/jquery.fn/master/cross-domain-ajax/jquery.xdomainajax.js"></script>
<pre id="app"></pre>

JavaScript

var app = $('#app');
var uri = 'http://developer.sakura.ad.jp/cloud/api/1.1/';
var docs = ['server', 'disk', 'switch', 'archive', 'cdrom', 'bridge', 'internet', 'interface', 'appliance', 'icon', 'note', 'sshkey', 'facility', 'product', 'account'];
var countdown = docs.length;
var result = [];

docs.forEach(function (doc) {
  $.get(uri + doc, function (data) {
  	var map = {};
		var verbs = $(data.responseText).find('.http-verb');
    var paths = $(data.responseText).find('.path');
    var titles = $(data.responseText).find('.title');
		for (var i = 0; i < titles.length; i++) {
    	map[verbs[i].innerText + ' ' + paths[i].innerText] = titles[i].innerText;
    }
    
    result.push({
    	title: doc,
      list: map
    });
    
    countdown--;
    if (countdown === 0) { 
      output();
    }
  });
});

var output = () => {
	result.sort((a, b) => { 
  	return docs.indexOf(a.title) - docs.indexOf(b.title);
  });
  const text = result.map(r => { return r.list; });
	app.append(JSON.stringify(text, null, ' '));
};