haveapi 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.editorconfig +15 -0
- data/CHANGELOG +15 -0
- data/README.md +66 -47
- data/doc/create-client.md +14 -5
- data/doc/json-schema.erb +16 -2
- data/doc/protocol.md +25 -3
- data/doc/protocol.plantuml +14 -8
- data/haveapi.gemspec +4 -2
- data/lib/haveapi.rb +5 -3
- data/lib/haveapi/action.rb +34 -6
- data/lib/haveapi/action_state.rb +92 -0
- data/lib/haveapi/authentication/basic/provider.rb +7 -0
- data/lib/haveapi/authentication/token/provider.rb +5 -0
- data/lib/haveapi/client_example.rb +83 -0
- data/lib/haveapi/client_examples/curl.rb +86 -0
- data/lib/haveapi/client_examples/fs_client.rb +116 -0
- data/lib/haveapi/client_examples/http.rb +91 -0
- data/lib/haveapi/client_examples/js_client.rb +149 -0
- data/lib/haveapi/client_examples/php_client.rb +122 -0
- data/lib/haveapi/client_examples/ruby_cli.rb +117 -0
- data/lib/haveapi/client_examples/ruby_client.rb +106 -0
- data/lib/haveapi/context.rb +3 -2
- data/lib/haveapi/example.rb +29 -2
- data/lib/haveapi/extensions/action_exceptions.rb +2 -2
- data/lib/haveapi/extensions/base.rb +1 -1
- data/lib/haveapi/extensions/exception_mailer.rb +339 -0
- data/lib/haveapi/hooks.rb +1 -1
- data/lib/haveapi/parameters/typed.rb +5 -3
- data/lib/haveapi/public/css/highlight.css +99 -0
- data/lib/haveapi/public/doc/protocol.png +0 -0
- data/lib/haveapi/public/js/highlight.pack.js +2 -0
- data/lib/haveapi/public/js/highlighter.js +9 -0
- data/lib/haveapi/public/js/main.js +32 -0
- data/lib/haveapi/public/js/nojs-tabs.js +196 -0
- data/lib/haveapi/resources/action_state.rb +196 -0
- data/lib/haveapi/server.rb +96 -27
- data/lib/haveapi/version.rb +2 -2
- data/lib/haveapi/views/main_layout.erb +14 -0
- data/lib/haveapi/views/version_page.erb +187 -13
- data/lib/haveapi/views/version_sidebar.erb +37 -3
- metadata +49 -5
@@ -1,15 +1,32 @@
|
|
1
|
+
<% def render_auth_nav(methods) %>
|
2
|
+
<ul>
|
3
|
+
<% methods.each do |method, info| %>
|
4
|
+
<li>
|
5
|
+
<a href="#auth-<%= method %>"><%= method.to_s.humanize %></a>
|
6
|
+
<% if info[:resources] %>
|
7
|
+
<ul>
|
8
|
+
<% sort_hash(info[:resources]).each do |resource, info| %>
|
9
|
+
<% render_resource_nav(resource.to_s, info, "auth-#{method}") %>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
<% end %>
|
13
|
+
</li>
|
14
|
+
<% end %>
|
15
|
+
</ul>
|
16
|
+
<% end %>
|
17
|
+
|
1
18
|
<% def render_resource_nav(resource, info, prefix='root') %>
|
2
19
|
<li>
|
3
20
|
<a href="#<%= "#{prefix}-#{resource}" %>">.<%= resource.humanize %></a>
|
4
21
|
|
5
22
|
<ul>
|
6
|
-
<% info[:actions].each do |action, info| %>
|
23
|
+
<% sort_hash(info[:actions]).each do |action, info| %>
|
7
24
|
<li>
|
8
25
|
<a href="#<%= "#{prefix}-#{resource}-#{action}" %>">#<%= action.capitalize %></a>
|
9
26
|
</li>
|
10
27
|
<% end %>
|
11
28
|
|
12
|
-
<% info[:resources].each do |r, i| %>
|
29
|
+
<% sort_hash(info[:resources]).each do |r, i| %>
|
13
30
|
<% render_resource_nav(r, i, "#{prefix}-#{resource}") %>
|
14
31
|
<% end %>
|
15
32
|
</ul>
|
@@ -35,8 +52,25 @@
|
|
35
52
|
<h1>Contents</h1>
|
36
53
|
<ul class="top-level">
|
37
54
|
<li><a href="#api">API v<%= @v %></a></li>
|
55
|
+
<li>
|
56
|
+
<a href="#auth">Authentication</a>
|
57
|
+
<% render_auth_nav(@help[:authentication]) %>
|
58
|
+
</li>
|
38
59
|
<li><a href="#resources">Resources</a></li>
|
39
|
-
<% @help[:resources].each do |resource, info| %>
|
60
|
+
<% sort_hash(@help[:resources]).each do |resource, info| %>
|
40
61
|
<% render_resource_nav(resource, info) %>
|
41
62
|
<% end %>
|
42
63
|
</ul>
|
64
|
+
|
65
|
+
<h1>Browser</h1>
|
66
|
+
<p>
|
67
|
+
Browse this API with <a href="https://github.com/vpsfreecz/haveapi-webui">haveapi-webui</a>:
|
68
|
+
</p>
|
69
|
+
<p>
|
70
|
+
<a
|
71
|
+
href="https://webui.haveapi.org/v<%= version %>/#<%= urlescape(base_url) %>"
|
72
|
+
class="btn btn-default"
|
73
|
+
target="_blank">
|
74
|
+
Connect
|
75
|
+
</a>
|
76
|
+
</p>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haveapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Skokan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: require_all
|
@@ -136,12 +136,41 @@ dependencies:
|
|
136
136
|
- - ~>
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 1.0.2
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: haveapi-client
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ~>
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.6.0
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ~>
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.6.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: mail
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
139
167
|
description: Framework for creating self-describing APIs
|
140
168
|
email: jakub.skokan@vpsfree.cz
|
141
169
|
executables: []
|
142
170
|
extensions: []
|
143
171
|
extra_rdoc_files: []
|
144
172
|
files:
|
173
|
+
- .editorconfig
|
145
174
|
- .gitignore
|
146
175
|
- CHANGELOG
|
147
176
|
- Gemfile
|
@@ -157,6 +186,7 @@ files:
|
|
157
186
|
- haveapi.gemspec
|
158
187
|
- lib/haveapi.rb
|
159
188
|
- lib/haveapi/action.rb
|
189
|
+
- lib/haveapi/action_state.rb
|
160
190
|
- lib/haveapi/actions/default.rb
|
161
191
|
- lib/haveapi/actions/paginable.rb
|
162
192
|
- lib/haveapi/api.rb
|
@@ -166,12 +196,21 @@ files:
|
|
166
196
|
- lib/haveapi/authentication/token/provider.rb
|
167
197
|
- lib/haveapi/authentication/token/resources.rb
|
168
198
|
- lib/haveapi/authorization.rb
|
199
|
+
- lib/haveapi/client_example.rb
|
200
|
+
- lib/haveapi/client_examples/curl.rb
|
201
|
+
- lib/haveapi/client_examples/fs_client.rb
|
202
|
+
- lib/haveapi/client_examples/http.rb
|
203
|
+
- lib/haveapi/client_examples/js_client.rb
|
204
|
+
- lib/haveapi/client_examples/php_client.rb
|
205
|
+
- lib/haveapi/client_examples/ruby_cli.rb
|
206
|
+
- lib/haveapi/client_examples/ruby_client.rb
|
169
207
|
- lib/haveapi/common.rb
|
170
208
|
- lib/haveapi/context.rb
|
171
209
|
- lib/haveapi/example.rb
|
172
210
|
- lib/haveapi/exceptions.rb
|
173
211
|
- lib/haveapi/extensions/action_exceptions.rb
|
174
212
|
- lib/haveapi/extensions/base.rb
|
213
|
+
- lib/haveapi/extensions/exception_mailer.rb
|
175
214
|
- lib/haveapi/hooks.rb
|
176
215
|
- lib/haveapi/metadata.rb
|
177
216
|
- lib/haveapi/model_adapter.rb
|
@@ -185,10 +224,16 @@ files:
|
|
185
224
|
- lib/haveapi/params.rb
|
186
225
|
- lib/haveapi/public/css/bootstrap-theme.min.css
|
187
226
|
- lib/haveapi/public/css/bootstrap.min.css
|
227
|
+
- lib/haveapi/public/css/highlight.css
|
188
228
|
- lib/haveapi/public/doc/protocol.png
|
189
229
|
- lib/haveapi/public/js/bootstrap.min.js
|
230
|
+
- lib/haveapi/public/js/highlight.pack.js
|
231
|
+
- lib/haveapi/public/js/highlighter.js
|
190
232
|
- lib/haveapi/public/js/jquery-1.11.1.min.js
|
233
|
+
- lib/haveapi/public/js/main.js
|
234
|
+
- lib/haveapi/public/js/nojs-tabs.js
|
191
235
|
- lib/haveapi/resource.rb
|
236
|
+
- lib/haveapi/resources/action_state.rb
|
192
237
|
- lib/haveapi/route.rb
|
193
238
|
- lib/haveapi/server.rb
|
194
239
|
- lib/haveapi/spec/api_builder.rb
|
@@ -248,9 +293,9 @@ require_paths:
|
|
248
293
|
- lib
|
249
294
|
required_ruby_version: !ruby/object:Gem::Requirement
|
250
295
|
requirements:
|
251
|
-
- -
|
296
|
+
- - '>='
|
252
297
|
- !ruby/object:Gem::Version
|
253
|
-
version:
|
298
|
+
version: 2.0.0
|
254
299
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
300
|
requirements:
|
256
301
|
- - '>='
|
@@ -263,4 +308,3 @@ signing_key:
|
|
263
308
|
specification_version: 4
|
264
309
|
summary: Framework for creating self-describing APIs
|
265
310
|
test_files: []
|
266
|
-
has_rdoc:
|