uatu-marvel 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -1
- data/Gemfile +2 -1
- data/README.md +5 -3
- data/bin/console +7 -0
- data/lib/uatu.rb +13 -2
- data/lib/uatu/base.rb +10 -55
- data/lib/uatu/configuration.rb +3 -5
- data/lib/uatu/connection.rb +48 -41
- data/lib/uatu/endpoints/collection.rb +16 -0
- data/lib/uatu/endpoints/nested.rb +23 -0
- data/lib/uatu/endpoints/single.rb +17 -0
- data/lib/uatu/resource.rb +21 -19
- data/lib/uatu/resources.rb +3 -0
- data/lib/uatu/response.rb +1 -4
- data/lib/uatu/version.rb +1 -1
- data/spec/integration/characters_spec.rb +25 -0
- data/spec/integration/comics_spec.rb +17 -0
- data/spec/integration/creators_spec.rb +19 -0
- data/spec/integration/events_spec.rb +19 -0
- data/spec/integration/series_spec.rb +19 -0
- data/spec/integration/stories_spec.rb +19 -0
- data/spec/spec_helper.rb +18 -0
- data/spec/support/fake_marvel_api.rb +24 -0
- data/spec/support/fake_marvel_api/characters/list.json +381 -0
- data/spec/support/fake_marvel_api/characters/show.json +381 -0
- data/spec/support/fake_marvel_api/comics/list.json +1479 -0
- data/spec/support/fake_marvel_api/comics/show.json +134 -0
- data/spec/support/fake_marvel_api/creators/list.json +180 -0
- data/spec/support/fake_marvel_api/creators/show.json +323 -0
- data/spec/support/fake_marvel_api/events/list.json +2224 -0
- data/spec/support/fake_marvel_api/events/show.json +474 -0
- data/spec/support/fake_marvel_api/series/list.json +739 -0
- data/spec/support/fake_marvel_api/series/show.json +101 -0
- data/spec/support/fake_marvel_api/stories/list.json +523 -0
- data/spec/support/fake_marvel_api/stories/show.json +69 -0
- data/spec/uatu/configuration_spec.rb +26 -0
- data/spec/uatu/connection_spec.rb +54 -0
- data/spec/uatu/resource_spec.rb +40 -0
- data/spec/uatu_spec.rb +9 -0
- data/uatu.gemspec +6 -4
- metadata +123 -34
- data/test/helper.rb +0 -9
- data/test/uatu/base_test.rb +0 -51
- data/test/uatu/configuration_test.rb +0 -19
- data/test/uatu/connection_test.rb +0 -31
- data/test/uatu/resource_test.rb +0 -33
- data/test/uatu/uatu_test.rb +0 -9
data/lib/uatu/response.rb
CHANGED
data/lib/uatu/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Characters" do
|
4
|
+
|
5
|
+
let(:uatu) { Uatu::Base.new }
|
6
|
+
|
7
|
+
it 'retrieves characters' do
|
8
|
+
hero = uatu.characters(name: 'Daredevil').first
|
9
|
+
expect(hero.name).to eq 'Daredevil'
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'retrieves a single character' do
|
13
|
+
hero = uatu.character(1009262)
|
14
|
+
expect(hero.name).to eq 'Daredevil'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'retrieves a resource from the character' do
|
18
|
+
hero_comics = uatu.character_comics(1009262)
|
19
|
+
expect(hero_comics.first.class).to eq Uatu::Comic
|
20
|
+
|
21
|
+
characters = hero_comics.first.characters.items
|
22
|
+
expect(characters.any?{|item| item['name'] == 'Daredevil' }).to be true
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Comics" do
|
4
|
+
|
5
|
+
let(:uatu) { Uatu::Base.new }
|
6
|
+
|
7
|
+
it 'retrieves comics' do
|
8
|
+
comic = uatu.comics.first
|
9
|
+
expect(comic.title).to eq "Black Panther: The Man Without Fear - The Complete Collection (Trade Paperback)"
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'retrieves a single comic' do
|
13
|
+
comic = uatu.comic(65443)
|
14
|
+
expect(comic.title).to eq "Black Panther: The Man Without Fear - The Complete Collection (Trade Paperback)"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Creators" do
|
4
|
+
|
5
|
+
let(:uatu) { Uatu::Base.new }
|
6
|
+
|
7
|
+
it 'retrieves creators' do
|
8
|
+
creators = uatu.creators
|
9
|
+
|
10
|
+
expect(creators.size).to eq 3
|
11
|
+
expect(creators.last.full_name).to eq "Abel"
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'retrieves a single creator' do
|
15
|
+
creator = uatu.creator(2)
|
16
|
+
expect(creator.full_name).to eq "Garth Ennis"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Events" do
|
4
|
+
|
5
|
+
let(:uatu) { Uatu::Base.new }
|
6
|
+
|
7
|
+
it 'retrieves events' do
|
8
|
+
events = uatu.events
|
9
|
+
|
10
|
+
expect(events.size).to eq 5
|
11
|
+
expect(events.first.title).to eq "Annihilation"
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'retrieves a single event' do
|
15
|
+
event = uatu.event(233)
|
16
|
+
expect(event.title).to eq "Atlantis Attacks"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Series" do
|
4
|
+
|
5
|
+
let(:uatu) { Uatu::Base.new }
|
6
|
+
|
7
|
+
it 'retrieves series' do
|
8
|
+
series = uatu.series
|
9
|
+
|
10
|
+
expect(series.size).to eq 6
|
11
|
+
expect(series.first.title).to eq "Alias Vol. 2: Come Home (2003)"
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'retrieves a single serie' do
|
15
|
+
serie = uatu.serie(155)
|
16
|
+
expect(serie.title).to eq "Alias Vol. 2: Come Home (2003)"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe "Stories" do
|
4
|
+
|
5
|
+
let(:uatu) { Uatu::Base.new }
|
6
|
+
|
7
|
+
it 'retrieves stories' do
|
8
|
+
stories = uatu.stories
|
9
|
+
|
10
|
+
expect(stories.size).to eq 7
|
11
|
+
expect(stories.first.title).to eq "Interior #1208"
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'retrieves a single story' do
|
15
|
+
story = uatu.story(13245)
|
16
|
+
expect(story.title).to eq "Fantastic Forum"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
require "uatu"
|
3
|
+
require 'webmock/rspec'
|
4
|
+
require 'support/fake_marvel_api'
|
5
|
+
|
6
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.example_status_persistence_file_path = ".rspec_status"
|
10
|
+
|
11
|
+
config.expect_with :rspec do |c|
|
12
|
+
c.syntax = :expect
|
13
|
+
end
|
14
|
+
|
15
|
+
config.before(:each) do
|
16
|
+
stub_request(:any, /gateway.marvel.com/).to_rack(FakeMarvelApi)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
|
3
|
+
class FakeMarvelApi < Sinatra::Base
|
4
|
+
get '/v1/public/:resources' do
|
5
|
+
json_response 200, "#{params['resources']}/list.json"
|
6
|
+
end
|
7
|
+
|
8
|
+
get '/v1/public/:resources/:id/:nested_resources' do
|
9
|
+
json_response 200, "#{params['nested_resources']}/list.json"
|
10
|
+
end
|
11
|
+
|
12
|
+
get '/v1/public/:resources/:id' do
|
13
|
+
json_response 200, "#{params['resources']}/show.json"
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def json_response(response_code, file_name)
|
19
|
+
content_type :json
|
20
|
+
status response_code
|
21
|
+
File.open(File.dirname(__FILE__) + '/fake_marvel_api/' + file_name, 'rb').read
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,381 @@
|
|
1
|
+
{
|
2
|
+
"code": 200,
|
3
|
+
"status": "Ok",
|
4
|
+
"copyright": "© 2017 MARVEL",
|
5
|
+
"attributionText": "Data provided by Marvel. © 2017 MARVEL",
|
6
|
+
"attributionHTML": "<a href=\"http://marvel.com\">Data provided by Marvel. © 2017 MARVEL</a>",
|
7
|
+
"etag": "f4a3b649ee2e7231b6e6b1d68319f7c548dd13f8",
|
8
|
+
"data": {
|
9
|
+
"offset": 0,
|
10
|
+
"limit": 20,
|
11
|
+
"total": 1,
|
12
|
+
"count": 1,
|
13
|
+
"results": [
|
14
|
+
{
|
15
|
+
"id": 1009262,
|
16
|
+
"name": "Daredevil",
|
17
|
+
"description": "Abandoned by his mother, Matt Murdock was raised by his father, boxer \"Battling Jack\" Murdock, in Hell's Kitchen. Realizing that rules were needed to prevent people from behaving badly, young Matt decided to study law; however, when he saved a man from an oncoming truck, it spilled a radioactive cargo that rendered Matt blind while enhancing his remaining senses. Under the harsh tutelage of blind martial arts master Stick, Matt mastered his heightened senses and became a formidable fighter.",
|
18
|
+
"modified": "2013-07-01T16:44:00-0400",
|
19
|
+
"thumbnail": {
|
20
|
+
"path": "http://i.annihil.us/u/prod/marvel/i/mg/d/50/50febb79985ee",
|
21
|
+
"extension": "jpg"
|
22
|
+
},
|
23
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/characters/1009262",
|
24
|
+
"comics": {
|
25
|
+
"available": 922,
|
26
|
+
"collectionURI": "http://gateway.marvel.com/v1/public/characters/1009262/comics",
|
27
|
+
"items": [
|
28
|
+
{
|
29
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/29317",
|
30
|
+
"name": "ACTS OF VENGEANCE CROSSOVERS OMNIBUS (Hardcover)"
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/29318",
|
34
|
+
"name": "ACTS OF VENGEANCE CROSSOVERS OMNIBUS (DM Only) (Hardcover)"
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/37255",
|
38
|
+
"name": "Alias Omnibus (Hardcover)"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/12637",
|
42
|
+
"name": "Alpha Flight (1983) #1"
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/12668",
|
46
|
+
"name": "Alpha Flight (1983) #127"
|
47
|
+
},
|
48
|
+
{
|
49
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/6233",
|
50
|
+
"name": "Alpha Flight Classic Vol. 1 (Trade Paperback)"
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/37894",
|
54
|
+
"name": "Amazing Spider-Man (1999) #1"
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/6549",
|
58
|
+
"name": "Amazing Spider-Man (1963) #16"
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/6811",
|
62
|
+
"name": "Amazing Spider-Man (1963) #396"
|
63
|
+
},
|
64
|
+
{
|
65
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/6848",
|
66
|
+
"name": "Amazing Spider-Man (1963) #429"
|
67
|
+
},
|
68
|
+
{
|
69
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/6858",
|
70
|
+
"name": "Amazing Spider-Man (1963) #438"
|
71
|
+
},
|
72
|
+
{
|
73
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/5808",
|
74
|
+
"name": "Amazing Spider-Man (1999) #538"
|
75
|
+
},
|
76
|
+
{
|
77
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/21504",
|
78
|
+
"name": "Amazing Spider-Man (1999) #566"
|
79
|
+
},
|
80
|
+
{
|
81
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/21702",
|
82
|
+
"name": "Amazing Spider-Man (1999) #567"
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/23567",
|
86
|
+
"name": "Amazing Spider-Man (1999) #587"
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/24407",
|
90
|
+
"name": "Amazing Spider-Man (1999) #600"
|
91
|
+
},
|
92
|
+
{
|
93
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/29303",
|
94
|
+
"name": "Amazing Spider-Man (1999) #600 (2ND PRINTING VARIANT)"
|
95
|
+
},
|
96
|
+
{
|
97
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/35491",
|
98
|
+
"name": "Amazing Spider-Man (1999) #677"
|
99
|
+
},
|
100
|
+
{
|
101
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/16904",
|
102
|
+
"name": "Amazing Spider-Man Annual (1964) #3"
|
103
|
+
},
|
104
|
+
{
|
105
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/comics/16889",
|
106
|
+
"name": "Amazing Spider-Man Annual (1964) #15"
|
107
|
+
}
|
108
|
+
],
|
109
|
+
"returned": 20
|
110
|
+
},
|
111
|
+
"series": {
|
112
|
+
"available": 205,
|
113
|
+
"collectionURI": "http://gateway.marvel.com/v1/public/characters/1009262/series",
|
114
|
+
"items": [
|
115
|
+
{
|
116
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/9994",
|
117
|
+
"name": "ACTS OF VENGEANCE CROSSOVERS OMNIBUS (2011)"
|
118
|
+
},
|
119
|
+
{
|
120
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/9995",
|
121
|
+
"name": "ACTS OF VENGEANCE CROSSOVERS OMNIBUS (DM Only) (2011)"
|
122
|
+
},
|
123
|
+
{
|
124
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/13383",
|
125
|
+
"name": "Alias Omnibus (2006)"
|
126
|
+
},
|
127
|
+
{
|
128
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/2116",
|
129
|
+
"name": "Alpha Flight (1983 - 1994)"
|
130
|
+
},
|
131
|
+
{
|
132
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1983",
|
133
|
+
"name": "Alpha Flight Classic Vol. 1 (2007)"
|
134
|
+
},
|
135
|
+
{
|
136
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/454",
|
137
|
+
"name": "Amazing Spider-Man (1999 - 2013)"
|
138
|
+
},
|
139
|
+
{
|
140
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1987",
|
141
|
+
"name": "Amazing Spider-Man (1963 - 1998)"
|
142
|
+
},
|
143
|
+
{
|
144
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/2984",
|
145
|
+
"name": "Amazing Spider-Man Annual (1964 - 2009)"
|
146
|
+
},
|
147
|
+
{
|
148
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/6604",
|
149
|
+
"name": "Amazing Spider-Man: Extra! (2008 - 2009)"
|
150
|
+
},
|
151
|
+
{
|
152
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/6792",
|
153
|
+
"name": "Astonishing Tales (2009)"
|
154
|
+
},
|
155
|
+
{
|
156
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1991",
|
157
|
+
"name": "Avengers (1963 - 1996)"
|
158
|
+
},
|
159
|
+
{
|
160
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/354",
|
161
|
+
"name": "Avengers (1998 - 2004)"
|
162
|
+
},
|
163
|
+
{
|
164
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1988",
|
165
|
+
"name": "Avengers Annual (1967 - 1994)"
|
166
|
+
},
|
167
|
+
{
|
168
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1340",
|
169
|
+
"name": "Avengers Assemble (2004)"
|
170
|
+
},
|
171
|
+
{
|
172
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1496",
|
173
|
+
"name": "Avengers Assemble Vol. 2 (2005)"
|
174
|
+
},
|
175
|
+
{
|
176
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1816",
|
177
|
+
"name": "Avengers Assemble Vol. 4 (2007)"
|
178
|
+
},
|
179
|
+
{
|
180
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/16230",
|
181
|
+
"name": "Avengers Vs. X-Men: Versus (2011 - 2012)"
|
182
|
+
},
|
183
|
+
{
|
184
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/14246",
|
185
|
+
"name": "Avenging Spider-Man (2011 - Present)"
|
186
|
+
},
|
187
|
+
{
|
188
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/1503",
|
189
|
+
"name": "Best of the Fantastic Four Vol. 1 (2005)"
|
190
|
+
},
|
191
|
+
{
|
192
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/series/819",
|
193
|
+
"name": "Black Panther 2099 (2004)"
|
194
|
+
}
|
195
|
+
],
|
196
|
+
"returned": 20
|
197
|
+
},
|
198
|
+
"stories": {
|
199
|
+
"available": 1490,
|
200
|
+
"collectionURI": "http://gateway.marvel.com/v1/public/characters/1009262/stories",
|
201
|
+
"items": [
|
202
|
+
{
|
203
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1044",
|
204
|
+
"name": "2 of 4 - Golden Age",
|
205
|
+
"type": "cover"
|
206
|
+
},
|
207
|
+
{
|
208
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1045",
|
209
|
+
"name": "2 of 4 - Golden Age",
|
210
|
+
"type": "interiorStory"
|
211
|
+
},
|
212
|
+
{
|
213
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1056",
|
214
|
+
"name": "Cover #1056",
|
215
|
+
"type": "cover"
|
216
|
+
},
|
217
|
+
{
|
218
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1057",
|
219
|
+
"name": "Interior #1057",
|
220
|
+
"type": "interiorStory"
|
221
|
+
},
|
222
|
+
{
|
223
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1058",
|
224
|
+
"name": "Cover #1058",
|
225
|
+
"type": "cover"
|
226
|
+
},
|
227
|
+
{
|
228
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1059",
|
229
|
+
"name": "Interior #1059",
|
230
|
+
"type": "interiorStory"
|
231
|
+
},
|
232
|
+
{
|
233
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1060",
|
234
|
+
"name": "Cover #1060",
|
235
|
+
"type": "cover"
|
236
|
+
},
|
237
|
+
{
|
238
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1061",
|
239
|
+
"name": "Interior #1061",
|
240
|
+
"type": "interiorStory"
|
241
|
+
},
|
242
|
+
{
|
243
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1062",
|
244
|
+
"name": "Cover #1062",
|
245
|
+
"type": "cover"
|
246
|
+
},
|
247
|
+
{
|
248
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1063",
|
249
|
+
"name": "Interior #1063",
|
250
|
+
"type": "interiorStory"
|
251
|
+
},
|
252
|
+
{
|
253
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1064",
|
254
|
+
"name": "Cover #1064",
|
255
|
+
"type": "cover"
|
256
|
+
},
|
257
|
+
{
|
258
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1065",
|
259
|
+
"name": "Interior #1065",
|
260
|
+
"type": "interiorStory"
|
261
|
+
},
|
262
|
+
{
|
263
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1066",
|
264
|
+
"name": "Cover #1066",
|
265
|
+
"type": "cover"
|
266
|
+
},
|
267
|
+
{
|
268
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1067",
|
269
|
+
"name": "Interior #1067",
|
270
|
+
"type": "interiorStory"
|
271
|
+
},
|
272
|
+
{
|
273
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1068",
|
274
|
+
"name": "\"THE WIDOW,\" PART 4 (OF 4) The blistering climax to the sexy 4-part Black Widow storyline (just in time for a certain blistering",
|
275
|
+
"type": "cover"
|
276
|
+
},
|
277
|
+
{
|
278
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1069",
|
279
|
+
"name": "\"THE WIDOW,\" PART 4 (OF 4) The blistering climax to the sexy 4-part Black Widow storyline (just in time for a certain blistering",
|
280
|
+
"type": "interiorStory"
|
281
|
+
},
|
282
|
+
{
|
283
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1070",
|
284
|
+
"name": "Daredevil headlines this special, oversized issue celebrating both the 40th anniversary of the character AND the 5th anniversary",
|
285
|
+
"type": "cover"
|
286
|
+
},
|
287
|
+
{
|
288
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1071",
|
289
|
+
"name": "Daredevil headlines this special, oversized issue celebrating both the 40th anniversary of the character AND the 5th anniversary",
|
290
|
+
"type": "interiorStory"
|
291
|
+
},
|
292
|
+
{
|
293
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1072",
|
294
|
+
"name": "\"GOLDEN AGE\" PART 1 (OF 4) Leaping off the pages of last month’s anniversary special, we follow Matt Murdock through a story tha",
|
295
|
+
"type": "cover"
|
296
|
+
},
|
297
|
+
{
|
298
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/stories/1073",
|
299
|
+
"name": "\"GOLDEN AGE\" PART 1 (OF 4) Leaping off the pages of last month’s anniversary special, we follow Matt Murdock through a story tha",
|
300
|
+
"type": "interiorStory"
|
301
|
+
}
|
302
|
+
],
|
303
|
+
"returned": 20
|
304
|
+
},
|
305
|
+
"events": {
|
306
|
+
"available": 13,
|
307
|
+
"collectionURI": "http://gateway.marvel.com/v1/public/characters/1009262/events",
|
308
|
+
"items": [
|
309
|
+
{
|
310
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/116",
|
311
|
+
"name": "Acts of Vengeance!"
|
312
|
+
},
|
313
|
+
{
|
314
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/238",
|
315
|
+
"name": "Civil War"
|
316
|
+
},
|
317
|
+
{
|
318
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/248",
|
319
|
+
"name": "Fall of the Mutants"
|
320
|
+
},
|
321
|
+
{
|
322
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/302",
|
323
|
+
"name": "Fear Itself"
|
324
|
+
},
|
325
|
+
{
|
326
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/252",
|
327
|
+
"name": "Inferno"
|
328
|
+
},
|
329
|
+
{
|
330
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/29",
|
331
|
+
"name": "Infinity War"
|
332
|
+
},
|
333
|
+
{
|
334
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/37",
|
335
|
+
"name": "Maximum Security"
|
336
|
+
},
|
337
|
+
{
|
338
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/263",
|
339
|
+
"name": "Mutant Massacre"
|
340
|
+
},
|
341
|
+
{
|
342
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/336",
|
343
|
+
"name": "Secret Empire"
|
344
|
+
},
|
345
|
+
{
|
346
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/269",
|
347
|
+
"name": "Secret Invasion"
|
348
|
+
},
|
349
|
+
{
|
350
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/271",
|
351
|
+
"name": "Secret Wars II"
|
352
|
+
},
|
353
|
+
{
|
354
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/59",
|
355
|
+
"name": "Shadowland"
|
356
|
+
},
|
357
|
+
{
|
358
|
+
"resourceURI": "http://gateway.marvel.com/v1/public/events/273",
|
359
|
+
"name": "Siege"
|
360
|
+
}
|
361
|
+
],
|
362
|
+
"returned": 13
|
363
|
+
},
|
364
|
+
"urls": [
|
365
|
+
{
|
366
|
+
"type": "detail",
|
367
|
+
"url": "http://marvel.com/characters/11/daredevil?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
|
368
|
+
},
|
369
|
+
{
|
370
|
+
"type": "wiki",
|
371
|
+
"url": "http://marvel.com/universe/Daredevil_(Matthew_Murdock)?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
|
372
|
+
},
|
373
|
+
{
|
374
|
+
"type": "comiclink",
|
375
|
+
"url": "http://marvel.com/comics/characters/1009262/daredevil?utm_campaign=apiRef&utm_source=dcc0afa448458533d901bf0ff81da74c"
|
376
|
+
}
|
377
|
+
]
|
378
|
+
}
|
379
|
+
]
|
380
|
+
}
|
381
|
+
}
|