yard-restful 1.2.0 → 1.2.1
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.
- data/README.markdown +41 -116
- data/Rakefile +1 -1
- data/VERSION +1 -1
- metadata +2 -2
data/README.markdown
CHANGED
@@ -1,16 +1,12 @@
|
|
1
1
|
# Yardoc RESTful Web Service Plugin
|
2
2
|
|
3
|
-
|
4
|
-
rewritten for 0.3.0 by [rknLA](http://github.com/rknLA) with substantial help from [lsegal](http://gnuu.org/)
|
5
|
-
customized by [spape](http://github.com/spape) for the [MAdeK](http://github.com/zhdk/madek)
|
6
|
-
further customization by [DerNalia](http://github.com/DerNalia) for [TinderBox](http://gettinderbox.com)
|
7
|
-
[API-Documentation](http://medienarchiv.zhdk.ch/api)
|
3
|
+
Previous authors: [vWorkApp](http://www.vworkapp.com), [rknLA](http://github.com/rknLA), [lsegal](http://gnuu.org/), [spape](http://github.com/spape), [DerNalia](http://github.com/DerNalia)
|
8
4
|
|
9
5
|
A plugin for [Yardoc](http://yardoc.org/) that generates documentation for RESTful web services.
|
10
6
|
|
11
7
|
## Install
|
12
8
|
Bundler will reduce your headaches, so, please you that
|
13
|
-
gem 'yard-
|
9
|
+
gem 'yard-restful' # in your gemfile
|
14
10
|
|
15
11
|
You may need to include the following dependencies as well:
|
16
12
|
gem 'redcarpet'
|
@@ -27,61 +23,73 @@ So you'll have to re-genenarte your API on every machine. This should encourage
|
|
27
23
|
|
28
24
|
## Execution
|
29
25
|
It is recommended that you use a .yardopts file
|
26
|
+
|
30
27
|
--title "My API Documentation"
|
31
28
|
--plugin rest
|
32
29
|
--readme API_README
|
33
30
|
--output-dir ./public/api
|
34
|
-
app/models
|
35
|
-
app/controllers
|
31
|
+
app/models/**/*.rb
|
32
|
+
app/controllers/**/*.rb
|
36
33
|
|
37
34
|
So that way, whenever you want to generate your API docs, you simply need to run only
|
35
|
+
|
38
36
|
bundle exec yardoc
|
39
37
|
|
40
38
|
|
41
39
|
## See an API-Example
|
42
40
|
|
43
|
-
[
|
44
|
-
|
45
|
-
## Demo (see the plugin in action)
|
46
|
-
|
47
|
-
Visit [TinderBox API Documentation](http://mytinder.com/api/) for a demonstration.
|
41
|
+
[Sample application](http://kraft001.github.com/yard-restful-sample)
|
48
42
|
|
49
43
|
## Writing Comments
|
50
44
|
|
51
45
|
The following tags are provided:
|
52
46
|
|
53
|
-
-
|
47
|
+
- **@restful_api** version
|
48
|
+
Specifies the resource (controller) or object (model). This tag is compulsory, only **classes** and **methods** that include this in their comments are included in the API documentation.
|
54
49
|
|
55
|
-
-
|
50
|
+
- **@url** url
|
51
|
+
Specifies the URL which someone should use to access that resource.
|
56
52
|
|
57
|
-
-
|
53
|
+
- **@action** action
|
54
|
+
Specifies the http action (GET, POST, PUT etc.).
|
58
55
|
|
59
|
-
-
|
56
|
+
- **@required** [type] name description
|
57
|
+
Specifies an argument that must be passed to the service. You can specify as many of these as you need.
|
60
58
|
|
61
|
-
-
|
59
|
+
- **@optional** [type] name description
|
60
|
+
Specifies an optional argument that may be passed to the service. You can specify as many of these as you need.
|
62
61
|
|
63
|
-
-
|
62
|
+
- **@response** [type] description
|
63
|
+
Specifies type of the response. Usually just a link to an object.
|
64
64
|
|
65
|
-
-
|
65
|
+
- **@response_field** [type] name description
|
66
|
+
Further specifies the fields that are returned within the response.
|
66
67
|
|
67
|
-
-
|
68
|
+
- **@property** [type] name description
|
69
|
+
A property (attribute) of an object.
|
68
70
|
|
69
|
-
- @resource\_object\_properties Description of the modal and attributes that the API user should know about.
|
70
|
-
|
71
|
-
- @resource\_object\_footnotes Anything else that needs to be said about the model
|
72
71
|
### Examples
|
73
72
|
|
74
|
-
Examples should always be together in the following order: example_request, example_request_description, example_response, example_response_description (as soon as you write
|
73
|
+
Examples should always be together in the following order: example_request, example_request_description, example_response, example_response_description (as soon as you write an example_request you need a following example_response and the other way around).
|
75
74
|
|
76
75
|
Markdown rendering for the text is activated if a tags text contains a newline (see example).
|
77
76
|
|
78
|
-
-
|
77
|
+
- **@example_request**
|
78
|
+
An example of the request that is send to the service.
|
79
|
+
|
80
|
+
- **@example_request_description**
|
81
|
+
The description text for the example request.
|
82
|
+
|
83
|
+
- **@example_response**
|
84
|
+
An example of the response that is returned from the service.
|
79
85
|
|
80
|
-
-
|
86
|
+
- **@example_response_description**
|
87
|
+
The description text for the example response.
|
81
88
|
|
82
|
-
-
|
89
|
+
- **@example**
|
90
|
+
Example of an object.
|
83
91
|
|
84
|
-
|
92
|
+
@example_response example.
|
85
93
|
```json
|
86
94
|
{
|
87
95
|
"examples": [{
|
@@ -92,100 +100,17 @@ Markdown rendering for the text is activated if a tags text contains a newline (
|
|
92
100
|
}]
|
93
101
|
}
|
94
102
|
```
|
95
|
-
|
96
|
-
- @example_response_description example. The description text for the example response.
|
97
|
-
|
98
103
|
## Ignored Documentation
|
99
104
|
|
100
|
-
This plugin only documents **classes** and **methods** with **@
|
105
|
+
This plugin only documents **classes** and **methods** with **@restful_api** tag. It does not support module documentation.
|
101
106
|
|
102
107
|
## Example:
|
103
|
-
|
104
|
-
|
105
|
-
##
|
106
|
-
# A thing characteristic of its kind or illustrating a general rule:
|
107
|
-
# it's a good example of how European action can produce results | some of these carpets are among the finest examples of the period.
|
108
|
-
class ExamplesController
|
109
|
-
##
|
110
|
-
# Get a collection of examples:
|
111
|
-
#
|
112
|
-
# @resource index
|
113
|
-
# @url /examples[ .format ]
|
114
|
-
#
|
115
|
-
# @action GET
|
116
|
-
#
|
117
|
-
# @optional [Boolean] highlight Show only highlighted examples.
|
118
|
-
#
|
119
|
-
# @response_field [Array] examples The collection of examples.
|
120
|
-
#
|
121
|
-
# @status_codes possible API status codes
|
122
|
-
# 404 - Not Found
|
123
|
-
# 401 - Unauthorized
|
124
|
-
# 422 - Unprocessable Entity
|
125
|
-
# 200 - OK
|
126
|
-
#
|
127
|
-
#
|
128
|
-
# @example_request {}
|
129
|
-
# @example_request_description Just requests an index of samples.
|
130
|
-
# @example_response {"examples": [{"id":1, "title":"Animals", "text":"Dogs and cats are some.", "highlight":true}, {"id":2, "title":"Computers", "text":"Windows PC or Apple's Macintosh.", "highlight":false}]}
|
131
|
-
# @example_response_description Responds with the index of examples.
|
132
|
-
#
|
133
|
-
# @example_request {"highlight": true}
|
134
|
-
# @example_request_description Request only highlighted examples.
|
135
|
-
# @example_response
|
136
|
-
# ```json
|
137
|
-
# {
|
138
|
-
# "examples": [{
|
139
|
-
# "id":1,
|
140
|
-
# "title":"Animals",
|
141
|
-
# "text":"Dogs and cats are some.",
|
142
|
-
# "highlight":true
|
143
|
-
# }]
|
144
|
-
# }
|
145
|
-
# ```
|
146
|
-
# @example_response_description Responds only with highlighted examples.
|
147
|
-
#
|
148
|
-
def index
|
149
|
-
#...
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
And for models:
|
154
|
-
|
155
|
-
##
|
156
|
-
# @resource_object ExamplesModel
|
157
|
-
# @resource_object_properties
|
158
|
-
# ExamplesModel{
|
159
|
-
# id: Integer
|
160
|
-
# name: String
|
161
|
-
# }
|
162
|
-
#
|
163
|
-
# @resource_object_footnotes
|
164
|
-
# (1) For visibility, see {Shared}
|
165
|
-
class ExamplesModel
|
166
|
-
|
167
|
-
# @resource
|
168
|
-
CONSTANT_VARIABLE = 3
|
169
|
-
|
170
|
-
# internal documentation
|
171
|
-
# not picked up by yard-rest-plugin
|
172
|
-
# @return something_else
|
173
|
-
def something
|
174
|
-
#...
|
175
|
-
end
|
176
|
-
|
177
|
-
end
|
108
|
+
|
109
|
+
[Sample controller](http://kraft001.github.com/yard-restful-sample/app/controllers/books_controller.rb) and [sample model](http://kraft001.github.com/yard-restful-sample/app/models/book.rb)
|
178
110
|
|
179
111
|
## Development
|
180
112
|
|
181
113
|
As always, you can see what tasks are available by running:
|
182
|
-
|
183
|
-
rake -T
|
184
|
-
|
185
|
-
You can run the template locally over the included sample code by using the following rake tasks:
|
186
|
-
|
187
|
-
rake ex:clean
|
188
|
-
rake ex:generate
|
189
|
-
|
190
114
|
|
115
|
+
rake -T
|
191
116
|
|
data/Rakefile
CHANGED
@@ -8,7 +8,7 @@ begin
|
|
8
8
|
gem.summary = %Q{Yardoc plugin for Restful web services}
|
9
9
|
gem.description = %Q{A customized plugin for Yardoc that produces API documentation for Restful web services}
|
10
10
|
gem.email = ''
|
11
|
-
gem.homepage = "https://github.com/
|
11
|
+
gem.homepage = "https://github.com/kraft001/yard-restful"
|
12
12
|
gem.authors = ['Konstantin Rafalsky']
|
13
13
|
gem.add_dependency("yard", '~>0.8.3')
|
14
14
|
gem.files = Dir.glob("{lib,templates}/**/*").concat(["Rakefile"])
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yard-restful
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -60,7 +60,7 @@ files:
|
|
60
60
|
- templates/default/layout/html/setup.rb
|
61
61
|
- README.markdown
|
62
62
|
- VERSION
|
63
|
-
homepage: https://github.com/
|
63
|
+
homepage: https://github.com/kraft001/yard-restful
|
64
64
|
licenses: []
|
65
65
|
post_install_message:
|
66
66
|
rdoc_options: []
|