forked from AnnaBliss/api-stack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
executable file
·306 lines (265 loc) · 15.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
---
layout: page
title: The API Stack
---
<script type="text/javascript">
function showme($id)
{
if(document.getElementById($id).style.display=='none')
{
document.getElementById($id).style.display = '';
}
else
{
document.getElementById($id).style.display = 'none';
}
}
</script>
<h1>The API Stack</h1>
<p>these are the APIs I am tracking on that I have been profiling deeper, which includes the crafting of OpenAPI Specs that describe the surface area of the API. All the definitions <a href="https://github.com/api-stack/api-stack/tree/gh-pages/data">are available in the /data folder for this projects Github repository</a>.</p>
<p>All definitions are a work in progress, and I will be working to get them as complete as possible, so that they can be used in documentation, tooling, and other things along the API life cycle in which API definitions are being put to use. I am always working towards <a href="http://apievangelist.com/2015/06/15/my-minimum-viable-definition-for-a-complete-swagger-api-definition/">a complete as possible of an API definition</a> as makes sense for each company / platform.</p>
<p>If there is a particular API you like to see completed, let me know. If there is an API which you know of a better copy of the OpenAPI Spec is available, let me know as well. You can fork all this work over at <a href="https://github.com/api-stack/api-stack">the Github repository for the project</a>, and leave any comments on the <a href="https://github.com/api-stack/api-stack/issues">Github issues for the project</a>. Make sure you head over, and <a href="https://apis-guru.github.io/">support APIs.guru as well</a>, they are doing the same great work!</p>
<table cellpadding="3" cellspacing="2" width="90%" border="0" style="margin-top: 10px;">
{% for folder in site.data %}
{% for item in folder %}
{% assign file = item %}
{% if file.apis != null %}
{% assign masterapisjson = file.apis %}
{% assign common_api_action_url = '' %}
{% for apisjson in masterapisjson %}
{% if apisjson.specificationVersion != null %}
{% assign blog_url = '' %}
{% assign blogrss_url = '' %}
{% assign portal_url = '' %}
{% assign gitub_url = '' %}
{% assign twitter_url = '' %}
{% assign website_url = '' %}
{% for common in apisjson.x-common %}
{% if common.type == 'x-blog' %}
{% assign blog_url = common.url %}
{% endif %}
{% if common.type == 'x-blog-rss-feed' %}
{% assign blogrss_url = common.url %}
{% endif %}
{% if common.type == 'x-portal' %}
{% assign portal_url = common.url %}
{% endif %}
{% if common.type == 'x-github' %}
{% assign gitub_url = common.url %}
{% endif %}
{% if common.type == 'x-twitter' %}
{% assign twitter_url = common.url %}
{% endif %}
{% if common.type == 'x-api-actions' %}
{% assign common_api_action_url = common.url %}
{% endif %}
{% endfor %}
{% if apisjson.humanURL == null %}
{% assign website_url = portal_url %}
{% else %}
{% assign website_url = apisjson.humanURL %}
{% endif %}
<tr>
<td>
<table cellpading="10" cellspacing="10" width="100%" class="card" border="0">
<tr>
<td colspan="2" style="padding: 15px;">
{% if apisjson.image != null %}
<a href="{{ website_url }}">
<img src="{{ apisjson.image }}" align="left" style="padding: 10px;" width="125" />
</a>
{% endif %}
<a href="{{ website_url }}" style="font-size: 22px;"><strong>{{ apisjson.name }}</strong></a><br />
{{ apisjson.description }}
</td>
</tr>
<tr>
<td align="center" colspan="3" style="margin-left: 25px; margin-right: 25px;">
<ul style="list-style: none; display: inline;">
{% if portal_url != '' %}
<li style="display: inline; padding-left: 15px; padding-right: 15px;">
<a href="{{ portal_url }}" target="_blank" title="Portal">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-portal-developers.jpg" width="26" align="center" />
</a>
</li>
{% endif %}
{% if blog_url != '' %}
<li style="display: inline; padding-left: 15px; padding-right: 15px;">
<a href="{{ blog_url }}" target="_blank" title="Blog">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-blog-icon.png" width="26" align="center" />
</a>
</li>
{% endif %}
{% if blogrss_url != '' %}
<li style="display: inline; padding-left: 15px; padding-right: 15px;">
<a href="{{ blogrss_url }}" target="_blank" title="Blog RSS">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-rss-icon.png" width="26" align="center" />
</a>
</li>
{% endif %}
{% if twitter_url != '' %}
<li style="display: inline; padding-left: 15px; padding-right: 15px;">
<a href="{{ twitter_url }}" target="_blank" title="Twitter">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-twitter-icon.png" width="45" align="center" />
</a>
</li>
{% endif %}
{% if gitub_url != '' %}
<li style="display: inline; padding-left: 15px; padding-right: 15px;">
<a href="{{ gitub_url }}" target="_blank" title="Github">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-github-icon.png" width="52" align="center" />
</a>
</li>
{% endif %}
{% if apisjson.url != null %}
<li style="display: inline; padding-left: 15px; padding-right: 15px;">
<a href="{{ apisjson.url }}" target="_blank" title="APIs.json">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-api-a.png" width="51" align="center" />
</a>
</li>
{% endif %}
</ul>
</td>
</tr>
<tr>
<td align="center" colspan="3" style="margin-left: 90px; margin-right: 90px;">
{% assign api_action_url = '' %}
{% assign numberofapis = apisjson.apis | size %}
{% if numberofapis == 0 %}
{% else %}
<p style="font-size: 18px; text-align: left; margin-left: 117px;"><strong>APIs:</strong></p>
{% assign api_action_url = '' %}
{% for api in apisjson.apis %}
<table cellpadding="3" cellspacing="2" width="70%" border="0" style="margin-bottom: 25px;">
{% assign api_action_spec = '' %}
{% assign api_action_url = '' %}
{% assign openapi_json_spec_url = '' %}
{% assign openapi_yaml_spec_url = '' %}
{% for property in api.properties %}
{% assign thisname = apisjson.name | downcase %}
{% assign thisname = thisname | append:'/' %}
{% assign thisname = thisname | replace: ' ','-' %}
{% if property.type == 'x-openapi-spec-json' %}
{% assign openapi_json_spec_url = property.url %}
{% assign pathname = openapi_json_spec_url | replace: site.url,'' %}
{% assign pathname = pathname | replace: '/data/','' %}
{% assign pathname = pathname | replace: thisname,'' %}
{% assign pathname = pathname | replace: '/','' %}
{% assign pathname = pathname | replace: '.json','' %}
{% assign openapi_spec_json = file | map: pathname %}
{% endif %}
{% if property.type == 'x-openapi-spec-yaml' %}
{% assign openapi_yaml_spec_url = property.url %}
{% endif %}
{% if property.type == 'x-postman' %}
{% assign postman_url = property.url %}
{% endif %}
{% if property.type == 'x-api-blueprint' %}
{% assign api_blueprint_url = property.url %}
{% endif %}
{% if property.type == 'x-api-actions' %}
{% assign api_action_url = property.url %}
{% endif %}
{% endfor %}
<tr>
<td align="left">
{{ api.name }}
</td>
<td align="right">
<a href="{{ openapi_json_spec_url }}" target="_blank" title="OpenAPI Spec JSON">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-swagger-round.png" width="25" align="right" />
</a>
<a href="{{ openapi_yaml_spec_url }}" target="_blank" title="OpenAPI Spec Yaml">
<img src="https://s3.amazonaws.com/kinlane-productions/bw-icons/bw-yaml.png" width="25" align="right" />
</a>
</td>
</tr>
<tr style="display: none;" id="methods-for-{{ pathname }}">
<td colspan="2" align="left" style="margin-left: 25px; margin-right: 25px;">
<ul>
{% for spec in openapi_spec_json %}
{% for path in spec.paths %}
{% assign method_json = path[1] %}
{% for method in method_json %}
{% assign verb = method[0] | upcase %}
{% assign summary = method[1].summary %}
<li style="font-size: 12px;">{{ path[0] }} <strong>[{{ verb }}]</strong> {{ summary }}</li>
{% endfor %}
{% endfor %}
{% endfor %}
</ul>
</td>
</tr>
</table>
{% if api_action_url != '' %}
<p style="font-size: 18px; text-align: left; margin-left: 117px; padding-top: 8px;"><strong>Actions:</strong></p>
<table cellpadding="3" cellspacing="2" width="70%" border="0">
{% assign pathname = api_action_url | replace: site.url,'' %}
{% assign pathname = pathname | replace: '/data/','' %}
{% assign pathname = pathname | replace: thisname,'' %}
{% assign pathname = pathname | replace: '/','' %}
{% assign pathname = pathname | replace: '.json','' %}
{% assign api_action_spec = file | map: pathname %}
<tr>
<td colspan="2" align="left" style="margin-left: 75px; margin-right: 75px; margin-top: 15px;">
<ul style="margin-left: 15px;">
{% for actions in api_action_spec %}
{% for action in actions %}
{% assign action_label = action.Action %}
{% assign action_url = action.URL %}
<li style="font-size: 14px; list-style: none;">
<a href="{{ action_url }}">
<img src="https://s3.amazonaws.com/kinlane-productions/api-evangelist/zapier/zapier-icon.png" width="30" style="margin-right: 5px;" />
{{ action_label }}
</a>
</li>
{% endfor %}
{% endfor %}
</ul>
</td>
</tr>
</table>
{% endif %}
{% endfor %}
{% endif %}
</td>
</tr>
{% if common_api_action_url != '' %}
{% assign pathname = common_api_action_url | replace: site.url,'' %}
{% assign pathname = pathname | replace: '/data/','' %}
{% assign pathname = pathname | replace: thisname,'' %}
{% assign pathname = pathname | replace: '/','' %}
{% assign pathname = pathname | replace: '.json','' %}
{% assign api_action_spec = file | map: pathname %}
<tr>
<td colspan="3" align="left" style="margin-left: 75px; margin-right: 75px; margin-top 15px;">
<p style="font-size: 18px; margin-left: 117px; padding-top: 5px;"><strong>Actions:</strong></p>
<ul style="margin-left: 125px;">
{% for actions in api_action_spec %}
{% for action in actions %}
{% assign action_label = action.Action %}
{% assign action_url = action.URL %}
<li style="font-size: 14px; list-style: none;">
<a href="{{ action_url }}">
<img src="https://s3.amazonaws.com/kinlane-productions/api-evangelist/zapier/zapier-icon.png" width="30" style="margin-right: 5px;" />
{{ action_label }}
</a>
</li>
{% endfor %}
{% endfor %}
</ul>
</td>
</tr>
{% endif %}
</table>
</td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
</table>
<br />
<p>If you are an API provider and would like to see your API here, feel free to submit a link to it in the Github issues, or even fork and submit a pull requests. I'm looking for as much help as I can, to make this as complete as possible source for API definitions as I possibly can.</p>
<p>Remember, the more open, complete, freely available API definitions there are, the more people will have healthy patterns to follow when crafting their own APIs. If you design APIs, make sure and share your patterns.</p>