marvelite 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 78f3523b35c99204782fcc7de772ecb0d3118ee7
4
- data.tar.gz: 5aa161a8dd19701b436ab98d1a20f4fd600487e0
3
+ metadata.gz: bcf2ccb0ede4085ab09804bc5d5cf1510d75a382
4
+ data.tar.gz: 7ade97ec9ff11f4880ce79ee2ca4a4751cf9eb1a
5
5
  SHA512:
6
- metadata.gz: ddba4b3509793d06748f2a46dc48b896cfd41c2bfaa7e94e8e754050fa9f7a8a57b584b3169faafc7bc295b21f45060a0244291a619d99e138c004d3ae3f2bb3
7
- data.tar.gz: 12bfc57f6b8ba408aad7b18b10f364ef415f6294e81f9b973561ad541a738cf12f65a68207a0d524c46ec209fc66f96d0d18588ae0371087c3ba284469fb9771
6
+ metadata.gz: e0284135f3777d78c31ecd91dcb3f2f2c15d2744cfa28a21286211a03f5ec8f60f84625c873d16d12d1483ec537524ffb1498512df6ef9e88bede7f683f71d79
7
+ data.tar.gz: 151a57db1addd05f107654ca8b504cd199060432df8b714dfd4374be79e4634d117dc5a6e8671ab4dc65299e22a23a608f05c9f16b962da5fa1bab2d9ca8718d
data/CHANGELOG.md ADDED
@@ -0,0 +1,21 @@
1
+ ## Changelog
2
+
3
+ ### 0.0.3
4
+ * Adds basic testing setup
5
+ * Adds the ability to retrieve:
6
+ * character comics by passing a character name instead of a numeric id
7
+ * character events by passing a character name instead of a numeric id
8
+ * character series by passing a character name instead of a numeric id
9
+ * character stories by passing a character name instead of a numeric id
10
+
11
+ ### 0.0.2
12
+ * Adds the following endpoints:
13
+ * retrieve character comics by connecting to the API's `/characters/:id/comics` endpoint
14
+ * retrieve character events by connecting to the API's `/characters/:id/events` endpoint
15
+ * retrieve character series by connecting to the API's `/characters/:id/series` endpoint
16
+ * retrieve character stories by connecting to the API's `/characters/:id/stories` endpoint
17
+
18
+ ### 0.0.1
19
+ * Initial release and just two endpoints:
20
+ * retrieve characters by connecting to the API's `/characters` endpoint
21
+ * retrieve a character by connecting to the API's `/characters/:id` endpoint
data/README.md CHANGED
@@ -33,7 +33,10 @@ Please register first in the [Marvel Comics Developer Portal](http://developer.m
33
33
  ### Instantiate a client
34
34
 
35
35
  ```ruby
36
- client = Marvelite::API::Client.new(:public_key => 'abcd1234', :private_key => '5678efgh')
36
+ client = Marvelite::API::Client.new(
37
+ :public_key => 'abcd1234',
38
+ :private_key => '5678efgh'
39
+ )
37
40
  ```
38
41
 
39
42
  ### Methods
@@ -69,28 +72,38 @@ client.character('Spider-Man')
69
72
 
70
73
  #### character_comics
71
74
 
72
- Fetches a list of comics containing a specific character. Requires a character id value (integer). Accepts optional params.
75
+ Fetches a list of comics containing a specific character. Requires a character id value (integer or string). Accepts optional params.
73
76
 
74
77
  ```ruby
75
78
  client.character_comics(1009610)
79
+ client.character_comics('Spider-Man')
76
80
  client.character_comics(
77
81
  1009610,
78
82
  { :format => 'graphic novel', :limit => 10, :orderBy => 'title' }
79
83
  )
84
+ client.character_comics(
85
+ 'Spider-Man',
86
+ { :format => 'graphic novel', :limit => 10, :orderBy => 'title' }
87
+ )
80
88
  ```
81
89
 
82
90
  See the [Marvel Comics Interactive API Tester](http://developer.marvel.com/docs#!/public/getComicsCharacterCollection_get_2) for a complete list of params that you can pass to the `#character_comics` method.
83
91
 
84
92
  #### character_events
85
93
 
86
- Fetches a list of events in which a specific character appears. Requires a character id value (integer). Accepts optional params.
94
+ Fetches a list of events in which a specific character appears. Requires a character id value (integer or string). Accepts optional params.
87
95
 
88
96
  ```ruby
89
97
  client.character_events(1009610)
98
+ client.character_events('Spider-Man')
90
99
  client.character_events(
91
100
  1009610,
92
101
  { :limit => 10, :orderBy => 'name' }
93
102
  )
103
+ client.character_events(
104
+ 'Spider-Man',
105
+ { :limit => 10, :orderBy => 'name' }
106
+ )
94
107
  ```
95
108
 
96
109
  See the [Marvel Comics Interactive API Tester](http://developer.marvel.com/docs#!/public/getCharacterEventsCollection_get_3) for a complete list of params that you can pass to the `#character_events` method.
@@ -98,14 +111,19 @@ See the [Marvel Comics Interactive API Tester](http://developer.marvel.com/docs#
98
111
 
99
112
  #### character_series
100
113
 
101
- Fetches a list of comic series in which a specific character appears. Requires a character id value (integer). Accepts optional params.
114
+ Fetches a list of comic series in which a specific character appears. Requires a character id value (integer or string). Accepts optional params.
102
115
 
103
116
  ```ruby
104
117
  client.character_series(1009610)
118
+ client.character_series('Spider-Man')
105
119
  client.character_series(
106
120
  1009610,
107
121
  { :seriesType => 'ongoing', :limit => 10, :orderBy => 'title' }
108
122
  )
123
+ client.character_series(
124
+ 'Spider-Man',
125
+ { :seriesType => 'ongoing', :limit => 10, :orderBy => 'title' }
126
+ )
109
127
  ```
110
128
 
111
129
  See the [Marvel Comics Interactive API Tester](http://developer.marvel.com/docs#!/public/getCharacterSeriesCollection_get_4) for a complete list of params that you can pass to the `#character_series` method.
@@ -113,18 +131,20 @@ See the [Marvel Comics Interactive API Tester](http://developer.marvel.com/docs#
113
131
 
114
132
  #### character_stories
115
133
 
116
- Fetches a list of comic stories featuring a specific character. Requires a character id value (integer). Accepts optional params.
134
+ Fetches a list of comic stories featuring a specific character. Requires a character id value (integer or string). Accepts optional params.
117
135
 
118
136
  ```ruby
119
137
  client.character_stories(1009610)
138
+ client.character_stories('Spider-Man')
120
139
  client.character_stories(1009610, { :limit => 10, :offset => 20 })
140
+ client.character_stories('Spider-Man', { :limit => 10, :offset => 20 })
121
141
  ```
122
142
 
123
143
  See the [Marvel Comics Interactive API Tester](http://developer.marvel.com/docs#!/public/getCharacterStoryCollection_get_5) for a complete list of params that you can pass to the `#character_stories` method.
124
144
 
125
145
  ## Responses
126
146
 
127
- All requests to the API, return a `Marvelite::API::Response` object, that is nothing more than the raw API response enhanced with Hashie methods.
147
+ All requests to the API, return a `Marvelite::API::Response` object if successful or a `Marvelite::API::ErrorResponse` if API response returns an error. These objects are nothing more than the raw API response enhanced with Hashie methods.
128
148
 
129
149
  This way you gain several adavantages to manipulate the response, like:
130
150
 
data/Rakefile CHANGED
@@ -1 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new("spec")
5
+
6
+ task :default => :spec
@@ -18,38 +18,59 @@ module Marvelite
18
18
 
19
19
  def characters(query_params = {})
20
20
  response = self.class.get("/#{api_version}/#{router.characters_path}", :query => params(query_params))
21
- Response.new(response)
21
+ build_response_object(response)
22
22
  end
23
23
 
24
24
  def character(value)
25
25
  by_name = value.is_a?(String) ? true : false
26
26
  response = if by_name
27
- self.characters(:name => value)
27
+ find_character_by_name(value)
28
28
  else
29
29
  self.class.get("/#{api_version}/#{router.character_path(value)}", :query => params)
30
30
  end
31
31
 
32
- Response.new(response)
32
+ build_response_object(response)
33
33
  end
34
34
 
35
35
  def character_comics(id, query_params = {})
36
+ if id.is_a?(String)
37
+ character = find_character_by_name(id)
38
+ return false unless character
39
+ id = character.id
40
+ end
41
+
36
42
  response = self.class.get("/#{api_version}/#{router.character_comics_path(id)}", :query => params(query_params))
37
- Response.new(response)
43
+ build_response_object(response)
38
44
  end
39
45
 
40
46
  def character_events(id, query_params = {})
47
+ if id.is_a?(String)
48
+ character = find_character_by_name(id)
49
+ return false unless character
50
+ id = character.id
51
+ end
41
52
  response = self.class.get("/#{api_version}/#{router.character_events_path(id)}", :query => params(query_params))
42
- Response.new(response)
53
+ build_response_object(response)
43
54
  end
44
55
 
45
56
  def character_series(id, query_params = {})
57
+ if id.is_a?(String)
58
+ character = find_character_by_name(id)
59
+ return false unless character
60
+ id = character.id
61
+ end
46
62
  response = self.class.get("/#{api_version}/#{router.character_series_path(id)}", :query => params(query_params))
47
- Response.new(response)
63
+ build_response_object(response)
48
64
  end
49
65
 
50
66
  def character_stories(id, query_params = {})
67
+ if id.is_a?(String)
68
+ character = find_character_by_name(id)
69
+ return false unless character
70
+ id = character.id
71
+ end
51
72
  response = self.class.get("/#{api_version}/#{router.character_stories_path(id)}", :query => params(query_params))
52
- Response.new(response)
73
+ build_response_object(response)
53
74
  end
54
75
 
55
76
  private
@@ -67,6 +88,23 @@ module Marvelite
67
88
  Time.now.to_i
68
89
  end
69
90
  end
91
+
92
+ def find_character_by_name(name)
93
+ response = self.characters(:name => name)
94
+ return false unless response[:data][:results].size > 0
95
+
96
+ response.id = response[:data][:results][0][:id]
97
+ response
98
+ end
99
+
100
+ def build_response_object(response)
101
+ case response["code"]
102
+ when 200
103
+ Response.new(response)
104
+ else
105
+ ErrorResponse.new(response)
106
+ end
107
+ end
70
108
  end
71
109
  end
72
110
  end
@@ -6,5 +6,12 @@ module Marvelite
6
6
  include Hashie::Extensions::MethodAccess
7
7
  include Hashie::Extensions::IndifferentAccess
8
8
  end
9
+
10
+ class ErrorResponse < Hash
11
+ include Hashie::Extensions::MergeInitializer
12
+ include Hashie::Extensions::KeyConversion
13
+ include Hashie::Extensions::MethodAccess
14
+ include Hashie::Extensions::IndifferentAccess
15
+ end
9
16
  end
10
17
  end
@@ -1,3 +1,3 @@
1
1
  module Marvelite
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,402 @@
1
+ {
2
+ "code": 200,
3
+ "status": "Ok",
4
+ "etag": "fc7e1550fb882c0f509568d508e1864742e7dbdb",
5
+ "data": {
6
+ "offset": 0,
7
+ "limit": 20,
8
+ "total": 1,
9
+ "count": 1,
10
+ "results": [
11
+ {
12
+ "id": 1009610,
13
+ "name": "Spider-Man",
14
+ "description": "Bitten by a radioactive spider, high school student Peter Parker gained the speed, strength and powers of a spider. Adopting the name Spider-Man, Peter hoped to start a career using his new abilities. Taught that with great power comes great responsibility, Spidey has vowed to use his powers to help people.",
15
+ "modified": "2013-10-24T13:52:13-0400",
16
+ "thumbnail": {
17
+ "path": "http://i.annihil.us/u/prod/marvel/i/mg/3/50/526548a343e4b",
18
+ "extension": "jpg"
19
+ },
20
+ "resourceURI": "http://gateway.marvel.com/v1/public/characters/1009610",
21
+ "comics": {
22
+ "available": 2576,
23
+ "collectionURI": "http://gateway.marvel.com/v1/public/characters/1009610/comics",
24
+ "items": [
25
+ {
26
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/43495",
27
+ "name": "A+X (2012) #2"
28
+ },
29
+ {
30
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/320",
31
+ "name": "Actor Presents Spider-Man and the Incredible Hulk (2003) #1"
32
+ },
33
+ {
34
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/30885",
35
+ "name": "Age of Heroes (Trade Paperback)"
36
+ },
37
+ {
38
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/37257",
39
+ "name": "Alias (2003) #10"
40
+ },
41
+ {
42
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/37262",
43
+ "name": "Alias (2003) #15"
44
+ },
45
+ {
46
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/37255",
47
+ "name": "Alias Omnibus (Hardcover)"
48
+ },
49
+ {
50
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/12637",
51
+ "name": "Alpha Flight (1983) #1"
52
+ },
53
+ {
54
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/12668",
55
+ "name": "Alpha Flight (1983) #127"
56
+ },
57
+ {
58
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/6233",
59
+ "name": "Alpha Flight Classic Vol. 1 (Trade Paperback)"
60
+ },
61
+ {
62
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/16926",
63
+ "name": "Amazing Fantasy (1962) #15"
64
+ },
65
+ {
66
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/16214",
67
+ "name": "Amazing Fantasy Omnibus (Hardcover)"
68
+ },
69
+ {
70
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/5286",
71
+ "name": "Amazing Spider-Girl (2006)"
72
+ },
73
+ {
74
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/16151",
75
+ "name": "Amazing Spider-Girl (2006) #11"
76
+ },
77
+ {
78
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/13519",
79
+ "name": "Amazing Spider-Girl Vol. 1: Whatever Happened to the Daughter of Spider-Man (Trade Paperback)"
80
+ },
81
+ {
82
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/17305",
83
+ "name": "Amazing Spider-Girl Vol. 2: Comes the Carnage! (Trade Paperback)"
84
+ },
85
+ {
86
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/6481",
87
+ "name": "Amazing Spider-Man (1963)"
88
+ },
89
+ {
90
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/6482",
91
+ "name": "Amazing Spider-Man (1963) #1"
92
+ },
93
+ {
94
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/37894",
95
+ "name": "Amazing Spider-Man (1999) #1"
96
+ },
97
+ {
98
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/37895",
99
+ "name": "Amazing Spider-Man (1999) #2"
100
+ },
101
+ {
102
+ "resourceURI": "http://gateway.marvel.com/v1/public/comics/6593",
103
+ "name": "Amazing Spider-Man (1963) #2"
104
+ }
105
+ ],
106
+ "returned": 20
107
+ },
108
+ "series": {
109
+ "available": 530,
110
+ "collectionURI": "http://gateway.marvel.com/v1/public/characters/1009610/series",
111
+ "items": [
112
+ {
113
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/16450",
114
+ "name": "A+X (2012 - Present)"
115
+ },
116
+ {
117
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/458",
118
+ "name": "Actor Presents Spider-Man and the Incredible Hulk (2003)"
119
+ },
120
+ {
121
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/10235",
122
+ "name": "Age of Heroes (2011)"
123
+ },
124
+ {
125
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/672",
126
+ "name": "Alias (2003)"
127
+ },
128
+ {
129
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/13383",
130
+ "name": "Alias Omnibus (2006)"
131
+ },
132
+ {
133
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/2116",
134
+ "name": "Alpha Flight (1983 - 1994)"
135
+ },
136
+ {
137
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1983",
138
+ "name": "Alpha Flight Classic Vol. 1 (2007)"
139
+ },
140
+ {
141
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/2987",
142
+ "name": "Amazing Fantasy (1962)"
143
+ },
144
+ {
145
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/2707",
146
+ "name": "Amazing Fantasy Omnibus (2007)"
147
+ },
148
+ {
149
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1126",
150
+ "name": "Amazing Spider-Girl (2006 - 2009)"
151
+ },
152
+ {
153
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/2234",
154
+ "name": "Amazing Spider-Girl Vol. 1: Whatever Happened to the Daughter of Spider-Man (2007)"
155
+ },
156
+ {
157
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/3101",
158
+ "name": "Amazing Spider-Girl Vol. 2: Comes the Carnage! (2007)"
159
+ },
160
+ {
161
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/1987",
162
+ "name": "Amazing Spider-Man (1963 - 1998)"
163
+ },
164
+ {
165
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/454",
166
+ "name": "Amazing Spider-Man (1999 - 2013)"
167
+ },
168
+ {
169
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/9802",
170
+ "name": "Amazing Spider-Man Annual (2010)"
171
+ },
172
+ {
173
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/5958",
174
+ "name": "Amazing Spider-Man Annual (2008 - Present)"
175
+ },
176
+ {
177
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/13205",
178
+ "name": "Amazing Spider-Man Annual (2010 - Present)"
179
+ },
180
+ {
181
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/2984",
182
+ "name": "Amazing Spider-Man Annual (1964 - Present)"
183
+ },
184
+ {
185
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/5376",
186
+ "name": "Amazing Spider-Man Family (2008 - 2009)"
187
+ },
188
+ {
189
+ "resourceURI": "http://gateway.marvel.com/v1/public/series/9917",
190
+ "name": "Amazing Spider-Man MGC (2010)"
191
+ }
192
+ ],
193
+ "returned": 20
194
+ },
195
+ "stories": {
196
+ "available": 4164,
197
+ "collectionURI": "http://gateway.marvel.com/v1/public/characters/1009610/stories",
198
+ "items": [
199
+ {
200
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/483",
201
+ "name": "Interior #483",
202
+ "type": "interiorStory"
203
+ },
204
+ {
205
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/486",
206
+ "name": "Cover #486",
207
+ "type": "cover"
208
+ },
209
+ {
210
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/487",
211
+ "name": "Interior #487",
212
+ "type": "interiorStory"
213
+ },
214
+ {
215
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/499",
216
+ "name": "Interior #499",
217
+ "type": "interiorStory"
218
+ },
219
+ {
220
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/599",
221
+ "name": "Interior #599",
222
+ "type": "interiorStory"
223
+ },
224
+ {
225
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/805",
226
+ "name": "Interior #805",
227
+ "type": "interiorStory"
228
+ },
229
+ {
230
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/824",
231
+ "name": "Cover #824",
232
+ "type": "cover"
233
+ },
234
+ {
235
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/838",
236
+ "name": "3 of 3 - Family Business",
237
+ "type": "cover"
238
+ },
239
+ {
240
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/842",
241
+ "name": "1 of 1 - Secret of the Spider Shop",
242
+ "type": "cover"
243
+ },
244
+ {
245
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/867",
246
+ "name": "Interior #867",
247
+ "type": "interiorStory"
248
+ },
249
+ {
250
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1018",
251
+ "name": "Cover #1018",
252
+ "type": "cover"
253
+ },
254
+ {
255
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1019",
256
+ "name": "Interior #1019",
257
+ "type": "interiorStory"
258
+ },
259
+ {
260
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1020",
261
+ "name": "Cover #1020",
262
+ "type": "cover"
263
+ },
264
+ {
265
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1021",
266
+ "name": "Interior #1021",
267
+ "type": "interiorStory"
268
+ },
269
+ {
270
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1022",
271
+ "name": "Cover #1022",
272
+ "type": "cover"
273
+ },
274
+ {
275
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1023",
276
+ "name": "Interior #1023",
277
+ "type": "interiorStory"
278
+ },
279
+ {
280
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1076",
281
+ "name": "4 of 4 - Golden Age",
282
+ "type": "cover"
283
+ },
284
+ {
285
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1125",
286
+ "name": "6 of 6 - Sins Past",
287
+ "type": "cover"
288
+ },
289
+ {
290
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1126",
291
+ "name": "6 of 6 - Sins Past",
292
+ "type": "interiorStory"
293
+ },
294
+ {
295
+ "resourceURI": "http://gateway.marvel.com/v1/public/stories/1134",
296
+ "name": "Interior #1134",
297
+ "type": "interiorStory"
298
+ }
299
+ ],
300
+ "returned": 20
301
+ },
302
+ "events": {
303
+ "available": 29,
304
+ "collectionURI": "http://gateway.marvel.com/v1/public/characters/1009610/events",
305
+ "items": [
306
+ {
307
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/116",
308
+ "name": "Acts of Vengeance!"
309
+ },
310
+ {
311
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/233",
312
+ "name": "Atlantis Attacks"
313
+ },
314
+ {
315
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/234",
316
+ "name": "Avengers Disassembled"
317
+ },
318
+ {
319
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/310",
320
+ "name": "Avengers VS X-Men"
321
+ },
322
+ {
323
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/296",
324
+ "name": "Chaos War"
325
+ },
326
+ {
327
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/238",
328
+ "name": "Civil War"
329
+ },
330
+ {
331
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/318",
332
+ "name": "Dark Reign"
333
+ },
334
+ {
335
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/240",
336
+ "name": "Days of Future Present"
337
+ },
338
+ {
339
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/246",
340
+ "name": "Evolutionary War"
341
+ },
342
+ {
343
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/302",
344
+ "name": "Fear Itself"
345
+ },
346
+ {
347
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/251",
348
+ "name": "House of M"
349
+ },
350
+ {
351
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/252",
352
+ "name": "Inferno"
353
+ },
354
+ {
355
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/253",
356
+ "name": "Infinity Gauntlet"
357
+ },
358
+ {
359
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/255",
360
+ "name": "Initiative"
361
+ },
362
+ {
363
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/258",
364
+ "name": "Kraven's Last Hunt"
365
+ },
366
+ {
367
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/151",
368
+ "name": "Maximum Carnage"
369
+ },
370
+ {
371
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/37",
372
+ "name": "Maximum Security"
373
+ },
374
+ {
375
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/154",
376
+ "name": "Onslaught"
377
+ },
378
+ {
379
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/266",
380
+ "name": "Other - Evolve or Die"
381
+ },
382
+ {
383
+ "resourceURI": "http://gateway.marvel.com/v1/public/events/269",
384
+ "name": "Secret Invasion"
385
+ }
386
+ ],
387
+ "returned": 20
388
+ },
389
+ "urls": [
390
+ {
391
+ "type": "detail",
392
+ "url": "http://marvel.com/comics/characters/1009610/spider-man?utm_campaign=apiRef&utm_source=85ec0830b5958f4f46ea2fa898a76ef2"
393
+ },
394
+ {
395
+ "type": "wiki",
396
+ "url": "http://marvel.com/universe/Spider-Man_(Peter_Parker)?utm_campaign=apiRef&utm_source=85ec0830b5958f4f46ea2fa898a76ef2"
397
+ }
398
+ ]
399
+ }
400
+ ]
401
+ }
402
+ }