spacex 0.0.7 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +5 -5
- data/CHANGELOG.md +18 -2
- data/CONTRIBUTING.md +7 -7
- data/Gemfile +2 -0
- data/README.md +207 -98
- data/lib/spacex.rb +3 -0
- data/lib/spacex/base_request.rb +45 -20
- data/lib/spacex/capsules.rb +19 -0
- data/lib/spacex/company_info.rb +1 -1
- data/lib/spacex/cores.rb +22 -0
- data/lib/spacex/dragon_capsules.rb +2 -16
- data/lib/spacex/launches.rb +13 -1
- data/lib/spacex/missions.rb +2 -16
- data/lib/spacex/roadster.rb +1 -1
- data/lib/spacex/rockets.rb +7 -0
- data/lib/spacex/ships.rb +2 -16
- data/lib/spacex/version.rb +1 -1
- data/spacex.gemspec +6 -5
- data/spec/fixtures/spacex/capsules.yml +83 -0
- data/spec/fixtures/spacex/capsules/C202.yml +123 -0
- data/spec/fixtures/spacex/company_info/info.yml +63 -0
- data/spec/fixtures/spacex/cores.yml +62 -0
- data/spec/fixtures/spacex/cores/B1041.yml +123 -0
- data/spec/fixtures/spacex/dragon_capsules/info.yml +6 -6
- data/spec/fixtures/spacex/dragon_capsules/info/dragon1.yml +64 -0
- data/spec/fixtures/spacex/launches.yml +62 -0
- data/spec/fixtures/spacex/launches/all.yml +62 -0
- data/spec/fixtures/spacex/launches/next.yml +123 -0
- data/spec/fixtures/spacex/missions/F3364BF.yml +77 -0
- data/spec/fixtures/spacex/missions/info.yml +7 -7
- data/spec/fixtures/spacex/roadster/info.yml +64 -0
- data/spec/fixtures/spacex/rockets/info.yml +105 -0
- data/spec/fixtures/spacex/rockets/info/falcon1.yml +139 -0
- data/spec/fixtures/spacex/rockets/info/invalid.yml +61 -0
- data/spec/fixtures/spacex/ships/info.yml +20 -20
- data/spec/fixtures/spacex/ships/info/AMERICANCHAMPION.yml +61 -0
- data/spec/spacex/capsules_spec.rb +38 -0
- data/spec/spacex/company_info_spec.rb +2 -4
- data/spec/spacex/cores_spec.rb +45 -0
- data/spec/spacex/dragon_capsules_spec.rb +6 -6
- data/spec/spacex/launches_spec.rb +205 -15
- data/spec/spacex/missions_spec.rb +3 -5
- data/spec/spacex/roadster_spec.rb +3 -3
- data/spec/spacex/rockets_spec.rb +210 -0
- data/spec/spacex/ships_spec.rb +4 -4
- data/spec/spacex/version_spec.rb +1 -3
- data/spec/spec_helper.rb +9 -0
- metadata +63 -20
data/lib/spacex.rb
CHANGED
data/lib/spacex/base_request.rb
CHANGED
@@ -1,31 +1,56 @@
|
|
1
|
-
require 'byebug'
|
2
|
-
|
3
1
|
module SPACEX
|
4
2
|
class Response < Hashie::Mash
|
5
3
|
disable_warnings
|
6
4
|
end
|
7
5
|
|
8
6
|
module BaseRequest
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
class << self
|
8
|
+
def info(path, klass = nil, params = {})
|
9
|
+
response_body = get(path, params).body
|
10
|
+
process(response_body, klass)
|
11
|
+
end
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
private
|
14
|
+
|
15
|
+
def get(path, params)
|
16
|
+
conn(path).get do |req|
|
17
|
+
req.params = params
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def process(response_body, klass)
|
22
|
+
if response_body.is_a? Array
|
23
|
+
response_body.map do |element|
|
24
|
+
processed_response(element, klass)
|
25
|
+
end
|
26
|
+
else
|
27
|
+
processed_response(response_body, klass)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def processed_response(response, klass)
|
32
|
+
if klass.nil?
|
33
|
+
spacex_response(response)
|
34
|
+
else
|
35
|
+
klass.new(spacex_response(response))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def spacex_response(response)
|
40
|
+
SPACEX::Response.new(response)
|
41
|
+
end
|
18
42
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
43
|
+
def conn(path)
|
44
|
+
Faraday.new(
|
45
|
+
url: "#{SPACEX::ROOT_URI}/#{path}",
|
46
|
+
request: {
|
47
|
+
params_encoder: Faraday::FlatParamsEncoder
|
48
|
+
}
|
49
|
+
) do |c|
|
50
|
+
c.use ::FaradayMiddleware::ParseJson
|
51
|
+
c.use Faraday::Response::RaiseError
|
52
|
+
c.use Faraday::Adapter::NetHttp
|
53
|
+
end
|
29
54
|
end
|
30
55
|
end
|
31
56
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module SPACEX
|
2
|
+
class Capsules < Hashie::Trash
|
3
|
+
include Hashie::Extensions::IgnoreUndeclared
|
4
|
+
|
5
|
+
property 'capsule_serial'
|
6
|
+
property 'capsule_id'
|
7
|
+
property 'status'
|
8
|
+
property 'original_launch'
|
9
|
+
property 'original_launch_unix'
|
10
|
+
property 'missions'
|
11
|
+
property 'landings'
|
12
|
+
property 'type'
|
13
|
+
property 'details'
|
14
|
+
|
15
|
+
def self.info(capsule_serial = nil)
|
16
|
+
SPACEX::BaseRequest.info("capsules/#{capsule_serial}", SPACEX::Capsules)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/spacex/company_info.rb
CHANGED
data/lib/spacex/cores.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
module SPACEX
|
2
|
+
class Cores < Hashie::Trash
|
3
|
+
include Hashie::Extensions::IgnoreUndeclared
|
4
|
+
|
5
|
+
property 'core_serial'
|
6
|
+
property 'block'
|
7
|
+
property 'status'
|
8
|
+
property 'original_launch'
|
9
|
+
property 'original_launch_unix'
|
10
|
+
property 'missions'
|
11
|
+
property 'rtls_attempts'
|
12
|
+
property 'rtls_landings'
|
13
|
+
property 'asds_attempts'
|
14
|
+
property 'asds_landings'
|
15
|
+
property 'water_landing'
|
16
|
+
property 'details'
|
17
|
+
|
18
|
+
def self.info(core_serial = nil)
|
19
|
+
SPACEX::BaseRequest.info("cores/#{core_serial}", SPACEX::Cores)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -26,22 +26,8 @@ module SPACEX
|
|
26
26
|
property 'wikipedia'
|
27
27
|
property 'description'
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
data = SPACEX::BaseRequest.call_api('dragons')
|
32
|
-
data.get.body.map { |k| SPACEX::DragonCapsules.new(k) }
|
33
|
-
end
|
34
|
-
|
35
|
-
def get(dragon_id = nil)
|
36
|
-
return retrieve_all if dragon_id.nil?
|
37
|
-
|
38
|
-
data = SPACEX::BaseRequest.get("dragons/#{dragon_id}")
|
39
|
-
SPACEX::DragonCapsules.new(data)
|
40
|
-
end
|
41
|
-
|
42
|
-
def info(dragon_id = nil)
|
43
|
-
get(dragon_id)
|
44
|
-
end
|
29
|
+
def self.info(dragon_id = nil)
|
30
|
+
SPACEX::BaseRequest.info("dragons/#{dragon_id}", SPACEX::DragonCapsules)
|
45
31
|
end
|
46
32
|
end
|
47
33
|
end
|
data/lib/spacex/launches.rb
CHANGED
@@ -1,7 +1,19 @@
|
|
1
1
|
module SPACEX
|
2
2
|
module Launches
|
3
3
|
def self.latest
|
4
|
-
SPACEX::BaseRequest.
|
4
|
+
SPACEX::BaseRequest.info('launches/latest')
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.next
|
8
|
+
SPACEX::BaseRequest.info('launches/next')
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.all
|
12
|
+
SPACEX::BaseRequest.info('launches')
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.info
|
16
|
+
all
|
5
17
|
end
|
6
18
|
end
|
7
19
|
end
|
data/lib/spacex/missions.rb
CHANGED
@@ -11,22 +11,8 @@ module SPACEX
|
|
11
11
|
property 'twitter'
|
12
12
|
property 'description'
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
data = SPACEX::BaseRequest.call_api('missions')
|
17
|
-
data.get.body.map { |k| SPACEX::Missions.new(k) }
|
18
|
-
end
|
19
|
-
|
20
|
-
def get(mission_id = nil)
|
21
|
-
return retrieve_all if mission_id.nil?
|
22
|
-
|
23
|
-
data = SPACEX::BaseRequest.get("missions/#{mission_id}")
|
24
|
-
SPACEX::Missions.new(data)
|
25
|
-
end
|
26
|
-
|
27
|
-
def info(mission_id = nil)
|
28
|
-
get(mission_id)
|
29
|
-
end
|
14
|
+
def self.info(mission_id = nil)
|
15
|
+
SPACEX::BaseRequest.info("missions/#{mission_id}", SPACEX::Missions)
|
30
16
|
end
|
31
17
|
end
|
32
18
|
end
|
data/lib/spacex/roadster.rb
CHANGED
data/lib/spacex/ships.rb
CHANGED
@@ -26,22 +26,8 @@ module SPACEX
|
|
26
26
|
property 'url'
|
27
27
|
property 'image'
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
data = SPACEX::BaseRequest.call_api('ships')
|
32
|
-
data.get.body.map { |k| SPACEX::Ships.new(k) }
|
33
|
-
end
|
34
|
-
|
35
|
-
def get(ship_id = nil)
|
36
|
-
return retrieve_all if ship_id.nil?
|
37
|
-
|
38
|
-
data = SPACEX::BaseRequest.get("ships/#{ship_id}")
|
39
|
-
SPACEX::Ships.new(data)
|
40
|
-
end
|
41
|
-
|
42
|
-
def info(ship_id = nil)
|
43
|
-
get(ship_id)
|
44
|
-
end
|
29
|
+
def self.info(ship_id = nil)
|
30
|
+
SPACEX::BaseRequest.info("ships/#{ship_id}", SPACEX::Ships)
|
45
31
|
end
|
46
32
|
end
|
47
33
|
end
|
data/lib/spacex/version.rb
CHANGED
data/spacex.gemspec
CHANGED
@@ -17,12 +17,13 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.files = `git ls-files`.split("\n")
|
18
18
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
19
19
|
s.require_paths = ['lib']
|
20
|
-
s.add_dependency 'faraday', '
|
21
|
-
s.add_dependency 'faraday_middleware'
|
20
|
+
s.add_dependency 'faraday', '~> 0.9'
|
21
|
+
s.add_dependency 'faraday_middleware', '~> 0.12'
|
22
22
|
s.add_dependency 'hashie', '3.6.0'
|
23
|
+
s.add_development_dependency 'coveralls'
|
23
24
|
s.add_development_dependency 'rake', '~> 10'
|
24
|
-
s.add_development_dependency 'rspec'
|
25
|
+
s.add_development_dependency 'rspec', '~> 3.8'
|
25
26
|
s.add_development_dependency 'rubocop', '0.51.0'
|
26
|
-
s.add_development_dependency 'vcr'
|
27
|
-
s.add_development_dependency 'webmock'
|
27
|
+
s.add_development_dependency 'vcr', '~> 4'
|
28
|
+
s.add_development_dependency 'webmock', '~> 3.4'
|
28
29
|
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.spacexdata.com/v3/capsules/
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.15.3
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Mon, 15 Oct 2018 04:13:37 GMT
|
23
|
+
Content-Type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
Transfer-Encoding:
|
26
|
+
- chunked
|
27
|
+
Connection:
|
28
|
+
- keep-alive
|
29
|
+
Set-Cookie:
|
30
|
+
- __cfduid=dd8346f9a0220b57866735728f74ebd191539576817; expires=Tue, 15-Oct-19
|
31
|
+
04:13:37 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
|
32
|
+
Vary:
|
33
|
+
- Accept-Encoding, Origin
|
34
|
+
X-Dns-Prefetch-Control:
|
35
|
+
- 'off'
|
36
|
+
X-Frame-Options:
|
37
|
+
- SAMEORIGIN
|
38
|
+
Strict-Transport-Security:
|
39
|
+
- max-age=15552000; includeSubDomains
|
40
|
+
X-Download-Options:
|
41
|
+
- noopen
|
42
|
+
X-Content-Type-Options:
|
43
|
+
- nosniff
|
44
|
+
X-Xss-Protection:
|
45
|
+
- 1; mode=block
|
46
|
+
Access-Control-Allow-Origin:
|
47
|
+
- "*"
|
48
|
+
X-Response-Time:
|
49
|
+
- 49ms
|
50
|
+
Expect-Ct:
|
51
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
52
|
+
Server:
|
53
|
+
- cloudflare
|
54
|
+
Cf-Ray:
|
55
|
+
- 469f74439912572f-IAD
|
56
|
+
body:
|
57
|
+
encoding: ASCII-8BIT
|
58
|
+
string: '[{"capsule_serial":"C201","capsule_id":"dragon2","status":"active","original_launch":null,"original_launch_unix":null,"missions":[],"landings":0,"type":"Dragon
|
59
|
+
2.0","details":"Pressure vessel used for Dragon 2 structural testing. Rumored
|
60
|
+
to be repurposed for first Red Dragon Mission","reuse_count":0},{"capsule_serial":"C202","capsule_id":"dragon2","status":"active","original_launch":null,"original_launch_unix":null,"missions":[],"landings":0,"type":"Dragon
|
61
|
+
2.0","details":"Capsule used to qualify Dragon 2''s environmental control
|
62
|
+
and life support systems.","reuse_count":0},{"capsule_serial":"C203","capsule_id":"dragon2","status":"active","original_launch":null,"original_launch_unix":null,"missions":[],"landings":0,"type":"Dragon
|
63
|
+
2.0","details":"Rumored to be used for Inflight Abort Test after DM-1","reuse_count":0},{"capsule_serial":"C204","capsule_id":"dragon2","status":"active","original_launch":null,"original_launch_unix":null,"missions":[],"landings":0,"type":"Dragon
|
64
|
+
2.0","details":"Currently in construction for use in DM-2","reuse_count":0},{"capsule_serial":"C205","capsule_id":"dragon2","status":"active","original_launch":null,"original_launch_unix":null,"missions":[],"landings":0,"type":"Dragon
|
65
|
+
2.0","details":"In construction for use in first mission in contract under
|
66
|
+
the CCtCap contract","reuse_count":0},{"capsule_serial":"C101","capsule_id":"dragon1","status":"retired","original_launch":"2010-12-08T15:43:00.000Z","original_launch_unix":1291822980,"missions":[{"name":"COTS
|
67
|
+
1","flight":7}],"landings":0,"type":"Dragon 1.0","details":"Reentered after
|
68
|
+
three weeks in orbit","reuse_count":0},{"capsule_serial":"C102","capsule_id":"dragon1","status":"retired","original_launch":"2012-05-02T07:44:00.000Z","original_launch_unix":1335944640,"missions":[{"name":"COTS
|
69
|
+
2","flight":8}],"landings":1,"type":"Dragon 1.0","details":"First Dragon spacecraft","reuse_count":0},{"capsule_serial":"C103","capsule_id":"dragon1","status":"unknown","original_launch":"2012-10-08T00:35:00.000Z","original_launch_unix":1349656500,"missions":[{"name":"CRS-1","flight":9}],"landings":1,"type":"Dragon
|
70
|
+
1.0","details":"First of twenty missions flown under the CRS1 contract","reuse_count":0},{"capsule_serial":"C104","capsule_id":"dragon1","status":"unknown","original_launch":"2013-03-01T19:10:00.000Z","original_launch_unix":1362165000,"missions":[{"name":"CRS-2","flight":10}],"landings":1,"type":"Dragon
|
71
|
+
1.0","details":null,"reuse_count":0},{"capsule_serial":"C105","capsule_id":"dragon1","status":"unknown","original_launch":"2014-04-18T19:25:00.000Z","original_launch_unix":1397849100,"missions":[{"name":"CRS-3","flight":14}],"landings":1,"type":"Dragon
|
72
|
+
1.1","details":"First Dragon v1.1 capsule","reuse_count":0},{"capsule_serial":"C106","capsule_id":"dragon1","status":"active","original_launch":"2014-09-21T05:52:00.000Z","original_launch_unix":1411278720,"missions":[{"name":"CRS-4","flight":18},{"name":"CRS-11","flight":41}],"landings":2,"type":"Dragon
|
73
|
+
1.1","details":"First Dragon capsule to be reused","reuse_count":1},{"capsule_serial":"C107","capsule_id":"dragon1","status":"unknown","original_launch":"2015-01-10T09:47:00.000Z","original_launch_unix":1420883220,"missions":[{"name":"CRS-5","flight":19}],"landings":1,"type":"Dragon
|
74
|
+
1.1","details":null,"reuse_count":0},{"capsule_serial":"C108","capsule_id":"dragon1","status":"active","original_launch":"2015-04-14T20:10:00.000Z","original_launch_unix":1429042200,"missions":[{"name":"CRS-6","flight":22},{"name":"CRS-13","flight":51}],"landings":2,"type":"Dragon
|
75
|
+
1.1","details":"Second Dragon capsule to be reused","reuse_count":1},{"capsule_serial":"C109","capsule_id":"dragon1","status":"destroyed","original_launch":"2015-06-28T14:21:00.000Z","original_launch_unix":1435501260,"missions":[{"name":"CRS-7","flight":24}],"landings":0,"type":"Dragon
|
76
|
+
1.1","details":"Destroyed on impact after F9 launch failure","reuse_count":0},{"capsule_serial":"C110","capsule_id":"dragon1","status":"active","original_launch":"2016-04-08T20:43:00.000Z","original_launch_unix":1460148180,"missions":[{"name":"CRS-8","flight":28},{"name":"CRS-14","flight":59}],"landings":2,"type":"Dragon
|
77
|
+
1.1","details":null,"reuse_count":1},{"capsule_serial":"C111","capsule_id":"dragon1","status":"active","original_launch":"2016-07-18T04:45:00.000Z","original_launch_unix":1468817100,"missions":[{"name":"CRS-9","flight":32},{"name":"CRS-15","flight":64}],"landings":2,"type":"Dragon
|
78
|
+
1.1","details":null,"reuse_count":1},{"capsule_serial":"C112","capsule_id":"dragon1","status":"active","original_launch":"2017-02-19T14:39:00.000Z","original_launch_unix":1487515140,"missions":[{"name":"CRS-10","flight":36}],"landings":1,"type":"Dragon
|
79
|
+
1.1","details":null,"reuse_count":0},{"capsule_serial":"C113","capsule_id":"dragon1","status":"active","original_launch":"2017-08-14T16:31:00.000Z","original_launch_unix":1502728260,"missions":[{"name":"CRS-12","flight":45}],"landings":1,"type":"Dragon
|
80
|
+
1.1","details":"The last newly manufactured Dragon 1","reuse_count":0}]'
|
81
|
+
http_version:
|
82
|
+
recorded_at: Mon, 15 Oct 2018 04:13:37 GMT
|
83
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,123 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.spacexdata.com/v3/capsules/C202
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.15.3
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Thu, 11 Oct 2018 16:56:57 GMT
|
23
|
+
Content-Type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
Transfer-Encoding:
|
26
|
+
- chunked
|
27
|
+
Connection:
|
28
|
+
- keep-alive
|
29
|
+
Set-Cookie:
|
30
|
+
- __cfduid=dde4b2f1d71fa0b62f41b29183867cebd1539277017; expires=Fri, 11-Oct-19
|
31
|
+
16:56:57 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
|
32
|
+
Vary:
|
33
|
+
- Accept-Encoding, Origin
|
34
|
+
X-Dns-Prefetch-Control:
|
35
|
+
- 'off'
|
36
|
+
X-Frame-Options:
|
37
|
+
- SAMEORIGIN
|
38
|
+
Strict-Transport-Security:
|
39
|
+
- max-age=15552000; includeSubDomains
|
40
|
+
X-Download-Options:
|
41
|
+
- noopen
|
42
|
+
X-Content-Type-Options:
|
43
|
+
- nosniff
|
44
|
+
X-Xss-Protection:
|
45
|
+
- 1; mode=block
|
46
|
+
Access-Control-Allow-Origin:
|
47
|
+
- "*"
|
48
|
+
X-Response-Time:
|
49
|
+
- 35ms
|
50
|
+
Expect-Ct:
|
51
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
52
|
+
Server:
|
53
|
+
- cloudflare
|
54
|
+
Cf-Ray:
|
55
|
+
- 4682dcee4d542474-IAD
|
56
|
+
body:
|
57
|
+
encoding: ASCII-8BIT
|
58
|
+
string: '{"capsule_serial":"C202","capsule_id":"dragon2","status":"active","original_launch":null,"original_launch_unix":null,"missions":[],"landings":0,"type":"Dragon
|
59
|
+
2.0","details":"Capsule used to qualify Dragon 2''s environmental control
|
60
|
+
and life support systems.","reuse_count":0}'
|
61
|
+
http_version:
|
62
|
+
recorded_at: Thu, 11 Oct 2018 16:56:57 GMT
|
63
|
+
- request:
|
64
|
+
method: get
|
65
|
+
uri: https://api.spacexdata.com/v3/capsules/C202
|
66
|
+
body:
|
67
|
+
encoding: US-ASCII
|
68
|
+
string: ''
|
69
|
+
headers:
|
70
|
+
User-Agent:
|
71
|
+
- Faraday v0.15.3
|
72
|
+
Accept-Encoding:
|
73
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
74
|
+
Accept:
|
75
|
+
- "*/*"
|
76
|
+
response:
|
77
|
+
status:
|
78
|
+
code: 200
|
79
|
+
message: OK
|
80
|
+
headers:
|
81
|
+
Date:
|
82
|
+
- Thu, 11 Oct 2018 16:56:57 GMT
|
83
|
+
Content-Type:
|
84
|
+
- application/json; charset=utf-8
|
85
|
+
Transfer-Encoding:
|
86
|
+
- chunked
|
87
|
+
Connection:
|
88
|
+
- keep-alive
|
89
|
+
Set-Cookie:
|
90
|
+
- __cfduid=d39640f3b8c92ab574c8c50a302d44b5b1539277017; expires=Fri, 11-Oct-19
|
91
|
+
16:56:57 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
|
92
|
+
Vary:
|
93
|
+
- Accept-Encoding, Origin
|
94
|
+
X-Dns-Prefetch-Control:
|
95
|
+
- 'off'
|
96
|
+
X-Frame-Options:
|
97
|
+
- SAMEORIGIN
|
98
|
+
Strict-Transport-Security:
|
99
|
+
- max-age=15552000; includeSubDomains
|
100
|
+
X-Download-Options:
|
101
|
+
- noopen
|
102
|
+
X-Content-Type-Options:
|
103
|
+
- nosniff
|
104
|
+
X-Xss-Protection:
|
105
|
+
- 1; mode=block
|
106
|
+
Access-Control-Allow-Origin:
|
107
|
+
- "*"
|
108
|
+
X-Response-Time:
|
109
|
+
- 38ms
|
110
|
+
Expect-Ct:
|
111
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
112
|
+
Server:
|
113
|
+
- cloudflare
|
114
|
+
Cf-Ray:
|
115
|
+
- 4682dcefa91a5729-IAD
|
116
|
+
body:
|
117
|
+
encoding: ASCII-8BIT
|
118
|
+
string: '{"capsule_serial":"C202","capsule_id":"dragon2","status":"active","original_launch":null,"original_launch_unix":null,"missions":[],"landings":0,"type":"Dragon
|
119
|
+
2.0","details":"Capsule used to qualify Dragon 2''s environmental control
|
120
|
+
and life support systems.","reuse_count":0}'
|
121
|
+
http_version:
|
122
|
+
recorded_at: Thu, 11 Oct 2018 16:56:57 GMT
|
123
|
+
recorded_with: VCR 4.0.0
|