contentful 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.README.md.swp +0 -0
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/.travis.yml +10 -0
- data/ChangeLog.md +3 -0
- data/Gemfile +3 -0
- data/LICENSE.txt +21 -0
- data/README.md +193 -0
- data/Rakefile +30 -0
- data/contentful.gemspec +31 -0
- data/do_request.sh +5 -0
- data/doc/Contentful.html +131 -0
- data/doc/Contentful/AccessDenied.html +158 -0
- data/doc/Contentful/Array.html +346 -0
- data/doc/Contentful/Asset.html +315 -0
- data/doc/Contentful/BadRequest.html +158 -0
- data/doc/Contentful/Client.html +1407 -0
- data/doc/Contentful/ContentType.html +183 -0
- data/doc/Contentful/DynamicEntry.html +333 -0
- data/doc/Contentful/Entry.html +198 -0
- data/doc/Contentful/Error.html +413 -0
- data/doc/Contentful/Field.html +161 -0
- data/doc/Contentful/File.html +160 -0
- data/doc/Contentful/Link.html +275 -0
- data/doc/Contentful/Locale.html +161 -0
- data/doc/Contentful/NotFound.html +158 -0
- data/doc/Contentful/Request.html +669 -0
- data/doc/Contentful/Resource.html +606 -0
- data/doc/Contentful/Resource/AssetFields.html +413 -0
- data/doc/Contentful/Resource/AssetFields/ClassMethods.html +174 -0
- data/doc/Contentful/Resource/ClassMethods.html +271 -0
- data/doc/Contentful/Resource/Fields.html +398 -0
- data/doc/Contentful/Resource/Fields/ClassMethods.html +187 -0
- data/doc/Contentful/Resource/SystemProperties.html +444 -0
- data/doc/Contentful/Resource/SystemProperties/ClassMethods.html +174 -0
- data/doc/Contentful/ResourceBuilder.html +1400 -0
- data/doc/Contentful/Response.html +546 -0
- data/doc/Contentful/ServerError.html +158 -0
- data/doc/Contentful/Space.html +183 -0
- data/doc/Contentful/Support.html +198 -0
- data/doc/Contentful/Unauthorized.html +158 -0
- data/doc/Contentful/UnparsableJson.html +158 -0
- data/doc/Contentful/UnparsableResource.html +158 -0
- data/doc/_index.html +410 -0
- data/doc/class_list.html +54 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +338 -0
- data/doc/file.README.html +214 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +26 -0
- data/doc/index.html +214 -0
- data/doc/js/app.js +219 -0
- data/doc/js/full_list.js +178 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +533 -0
- data/doc/top-level-namespace.html +112 -0
- data/examples/custom_classes.rb +43 -0
- data/examples/dynamic_entries.rb +126 -0
- data/examples/example_queries.rb +27 -0
- data/examples/raise_errors.rb +22 -0
- data/examples/raw_mode.rb +15 -0
- data/examples/resource_mapping.rb +33 -0
- data/lib/contentful.rb +3 -0
- data/lib/contentful/array.rb +47 -0
- data/lib/contentful/asset.rb +34 -0
- data/lib/contentful/client.rb +193 -0
- data/lib/contentful/content_type.rb +16 -0
- data/lib/contentful/dynamic_entry.rb +54 -0
- data/lib/contentful/entry.rb +12 -0
- data/lib/contentful/error.rb +52 -0
- data/lib/contentful/field.rb +16 -0
- data/lib/contentful/file.rb +13 -0
- data/lib/contentful/link.rb +20 -0
- data/lib/contentful/locale.rb +12 -0
- data/lib/contentful/location.rb +12 -0
- data/lib/contentful/request.rb +37 -0
- data/lib/contentful/resource.rb +146 -0
- data/lib/contentful/resource/asset_fields.rb +50 -0
- data/lib/contentful/resource/fields.rb +39 -0
- data/lib/contentful/resource/system_properties.rb +48 -0
- data/lib/contentful/resource_builder.rb +197 -0
- data/lib/contentful/response.rb +64 -0
- data/lib/contentful/space.rb +14 -0
- data/lib/contentful/support.rb +18 -0
- data/lib/contentful/version.rb +3 -0
- data/spec/array_spec.rb +69 -0
- data/spec/asset_spec.rb +62 -0
- data/spec/auto_includes_spec.rb +12 -0
- data/spec/client_class_spec.rb +59 -0
- data/spec/client_configuration_spec.rb +197 -0
- data/spec/coercions_spec.rb +10 -0
- data/spec/content_type_spec.rb +44 -0
- data/spec/dynamic_entry_spec.rb +34 -0
- data/spec/entry_spec.rb +53 -0
- data/spec/error_class_spec.rb +60 -0
- data/spec/error_requests_spec.rb +32 -0
- data/spec/field_spec.rb +36 -0
- data/spec/file_spec.rb +28 -0
- data/spec/fixtures/json_responses/content_type.json +83 -0
- data/spec/fixtures/json_responses/not_found.json +13 -0
- data/spec/fixtures/json_responses/nyancat.json +48 -0
- data/spec/fixtures/json_responses/unparsable.json +13 -0
- data/spec/fixtures/vcr_cassettes/array.yml +288 -0
- data/spec/fixtures/vcr_cassettes/array_page_1.yml +106 -0
- data/spec/fixtures/vcr_cassettes/array_page_2.yml +73 -0
- data/spec/fixtures/vcr_cassettes/asset.yml +96 -0
- data/spec/fixtures/vcr_cassettes/bad_request.yml +76 -0
- data/spec/fixtures/vcr_cassettes/content_type.yml +147 -0
- data/spec/fixtures/vcr_cassettes/entries.yml +561 -0
- data/spec/fixtures/vcr_cassettes/entry.yml +112 -0
- data/spec/fixtures/vcr_cassettes/entry_cache.yml +288 -0
- data/spec/fixtures/vcr_cassettes/field.yml +147 -0
- data/spec/fixtures/vcr_cassettes/locale.yml +81 -0
- data/spec/fixtures/vcr_cassettes/location.yml +305 -0
- data/spec/fixtures/vcr_cassettes/not_found.yml +71 -0
- data/spec/fixtures/vcr_cassettes/nyancat.yml +112 -0
- data/spec/fixtures/vcr_cassettes/nyancat_include.yml +112 -0
- data/spec/fixtures/vcr_cassettes/reloaded_entry.yml +112 -0
- data/spec/fixtures/vcr_cassettes/space.yml +81 -0
- data/spec/fixtures/vcr_cassettes/unauthorized.yml +64 -0
- data/spec/link_spec.rb +40 -0
- data/spec/locale_spec.rb +20 -0
- data/spec/location_spec.rb +30 -0
- data/spec/request_spec.rb +48 -0
- data/spec/resource_spec.rb +52 -0
- data/spec/response_spec.rb +50 -0
- data/spec/space_spec.rb +36 -0
- data/spec/spec_helper.rb +6 -0
- data/spec/support/client.rb +6 -0
- data/spec/support/json_responses.rb +11 -0
- data/spec/support/vcr.rb +16 -0
- metadata +374 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Coercion Examples' do
|
4
|
+
let(:entry){ vcr("entry"){ create_client.entry 'nyancat' } }
|
5
|
+
|
6
|
+
it 'converts contentful to ruby DateTime objects' do
|
7
|
+
expect( entry.created_at ).to be_a DateTime
|
8
|
+
expect( entry.created_at.day ).to eq 27
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Contentful::ContentType do
|
4
|
+
let(:content_type){ vcr('content_type'){ create_client.content_type 'cat' } }
|
5
|
+
|
6
|
+
describe 'SystemProperties' do
|
7
|
+
it 'has a #sys getter returning a hash with symbol keys' do
|
8
|
+
expect( content_type.sys ).to be_a Hash
|
9
|
+
expect( content_type.sys.keys.sample ).to be_a Symbol
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'has #id' do
|
13
|
+
expect( content_type.id ).to eq "cat"
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'has #type' do
|
17
|
+
expect( content_type.type ).to eq "ContentType"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'Properties' do
|
22
|
+
it 'has a #properties getter returning a hash with symbol keys' do
|
23
|
+
expect( content_type.properties ).to be_a Hash
|
24
|
+
expect( content_type.properties.keys.sample ).to be_a Symbol
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'has #name' do
|
28
|
+
expect( content_type.name ).to eq "Cat"
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'has #description' do
|
32
|
+
expect( content_type.description ).to eq "Meow."
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'has #fields' do
|
36
|
+
expect( content_type.fields ).to be_a Array
|
37
|
+
expect( content_type.fields.first ).to be_a Contentful::Field
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'could have #display_field' do
|
41
|
+
expect( content_type ).to respond_to :display_field
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Contentful::DynamicEntry do
|
4
|
+
let(:content_type){ vcr('content_type'){ create_client.content_type 'cat' } }
|
5
|
+
|
6
|
+
it 'create as a class' do
|
7
|
+
expect( Contentful::DynamicEntry.create(content_type) ).to be_instance_of Class
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'also works with raw json object input as argument' do
|
11
|
+
expect( Contentful::DynamicEntry.create(json_fixture('content_type')) ).to be_instance_of Class
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should create Contentful::DynamicEntry instances' do
|
15
|
+
expect( Contentful::DynamicEntry.create(content_type).new(json_fixture('nyancat')) ).to \
|
16
|
+
be_a Contentful::DynamicEntry
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'Example Entry Class' do
|
20
|
+
before{
|
21
|
+
NyanCatEntry = Contentful::DynamicEntry.create(content_type)
|
22
|
+
}
|
23
|
+
|
24
|
+
it 'defines getters for entry fields' do
|
25
|
+
nyancat = NyanCatEntry.new json_fixture("nyancat")
|
26
|
+
expect( nyancat.color ).to eq "rainbow"
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'automatically coerces types' do
|
30
|
+
nyancat = NyanCatEntry.new json_fixture("nyancat")
|
31
|
+
expect( nyancat.birthday ).to be_a DateTime
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/spec/entry_spec.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Contentful::ContentType do
|
4
|
+
let(:entry){ vcr('entry'){ create_client.entry 'nyancat' } }
|
5
|
+
|
6
|
+
describe 'SystemProperties' do
|
7
|
+
it 'has a #sys getter returning a hash with symbol keys' do
|
8
|
+
expect( entry.sys ).to be_a Hash
|
9
|
+
expect( entry.sys.keys.sample ).to be_a Symbol
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'has #id' do
|
13
|
+
expect( entry.id ).to eq "nyancat"
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'has #type' do
|
17
|
+
expect( entry.type ).to eq "Entry"
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'has #space' do
|
21
|
+
expect( entry.space ).to be_a Contentful::Link
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'has #content_type' do
|
25
|
+
expect( entry.content_type ).to be_a Contentful::Link
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'has #created_at' do
|
29
|
+
expect( entry.created_at ).to be_a DateTime
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'has #updated_at' do
|
33
|
+
expect( entry.updated_at ).to be_a DateTime
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'has #revision' do
|
37
|
+
expect( entry.revision ).to eq 5
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe 'Fields' do
|
42
|
+
it 'has a #fields getter returning a hash with symbol keys' do
|
43
|
+
expect( entry.sys ).to be_a Hash
|
44
|
+
expect( entry.sys.keys.sample ).to be_a Symbol
|
45
|
+
end
|
46
|
+
|
47
|
+
it "contains the entry's fields" do
|
48
|
+
expect( entry.fields[:color] ).to eq "rainbow"
|
49
|
+
expect( entry.fields[:bestFriend] ).to be_a Contentful::Link
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Contentful::Error do
|
4
|
+
let(:r){ Contentful::Response.new raw_fixture("not_found") }
|
5
|
+
|
6
|
+
|
7
|
+
describe '#response' do
|
8
|
+
it 'returns the response the error has been initialized with' do
|
9
|
+
expect( Contentful::Error.new(r).response ).to be r
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '#message' do
|
14
|
+
it 'returns the message found in the response json' do
|
15
|
+
expect( Contentful::Error.new(r).message ).not_to be_nil
|
16
|
+
expect( Contentful::Error.new(r).message ).to \
|
17
|
+
eq json_fixture("not_found")["message"]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
describe Contentful::UnparsableJson do
|
23
|
+
describe '#message' do
|
24
|
+
it 'returns the json parser\'s message' do
|
25
|
+
uj = Contentful::Response.new raw_fixture("unparsable")
|
26
|
+
expect( Contentful::UnparsableJson.new(uj).message ).to \
|
27
|
+
include "unexpected token"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
describe '.[]' do
|
34
|
+
it 'returns NotFound error class for 404' do
|
35
|
+
expect( Contentful::Error[404] ).to eq Contentful::NotFound
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'returns BadRequest error class for 400' do
|
39
|
+
expect( Contentful::Error[400] ).to eq Contentful::BadRequest
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'returns AccessDenied error class for 403' do
|
43
|
+
expect( Contentful::Error[403] ).to eq Contentful::AccessDenied
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'returns Unauthorized error class for 401' do
|
47
|
+
expect( Contentful::Error[401] ).to eq Contentful::Unauthorized
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'returns ServerError error class for 500' do
|
51
|
+
expect( Contentful::Error[500] ).to eq Contentful::ServerError
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'returns generic error class for any other value' do
|
55
|
+
expect( Contentful::Error[nil] ).to eq Contentful::Error
|
56
|
+
expect( Contentful::Error[200] ).to eq Contentful::Error
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe 'Error Requests' do
|
5
|
+
it 'will return 404 (Unauthorized) if resource not found' do
|
6
|
+
expect_vcr("not found"){
|
7
|
+
create_client.entry 'not found'
|
8
|
+
}.to raise_error(Contentful::NotFound)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'will return 400 (BadRequest) if invalid parameters have been passed' do
|
12
|
+
expect_vcr("bad request"){
|
13
|
+
create_client.entries(some: 'parameter')
|
14
|
+
}.to raise_error(Contentful::BadRequest)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'will return 403 (AccessDenied) if ...' do
|
18
|
+
pending
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'will return 401 (Unauthorized) if wrong credentials given' do
|
22
|
+
client = Contentful::Client.new(space: "wrong", access_token: "credentials")
|
23
|
+
|
24
|
+
expect_vcr("unauthorized"){
|
25
|
+
client.entry 'nyancat'
|
26
|
+
}.to raise_error(Contentful::Unauthorized)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'will return 500 (ServerError) if ...' do
|
30
|
+
pending
|
31
|
+
end
|
32
|
+
end
|
data/spec/field_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Contentful::Field do
|
4
|
+
let(:field){ vcr('field'){ create_client.content_type('cat').fields.first } }
|
5
|
+
|
6
|
+
describe 'Properties' do
|
7
|
+
it 'has a #properties getter returning a hash with symbol keys' do
|
8
|
+
expect( field.properties ).to be_a Hash
|
9
|
+
expect( field.properties.keys.sample ).to be_a Symbol
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'has #id' do
|
13
|
+
expect( field.id ).to eq "name"
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'has #name' do
|
17
|
+
expect( field.name ).to eq "Name"
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'has #type' do
|
21
|
+
expect( field.type ).to eq "Text"
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'could have #items' do
|
25
|
+
expect( field ).to respond_to :items
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'has #required' do
|
29
|
+
expect( field.required ).to be_true
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'has #localized' do
|
33
|
+
expect( field.required ).to be_true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/spec/file_spec.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Contentful::File do
|
4
|
+
let(:file){ vcr('asset'){ create_client.asset('nyancat').file } }
|
5
|
+
|
6
|
+
describe 'Properties' do
|
7
|
+
it 'has a #properties getter returning a hash with symbol keys' do
|
8
|
+
expect( file.properties ).to be_a Hash
|
9
|
+
expect( file.properties.keys.sample ).to be_a Symbol
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'has #file_name' do
|
13
|
+
expect( file.file_name ).to eq "Nyan_cat_250px_frame.png"
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'has #content_type' do
|
17
|
+
expect( file.content_type ).to eq "image/png"
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'has #url' do
|
21
|
+
expect( file.url ).to eq "//images.contentful.com/cfexampleapi/4gp6taAwW4CmSgumq2ekUm/9da0cd1936871b8d72343e895a00d611/Nyan_cat_250px_frame.png"
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'has #details' do
|
25
|
+
expect( file.details ).to be_instance_of Hash
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
{
|
2
|
+
"fields": [
|
3
|
+
{
|
4
|
+
"id": "name",
|
5
|
+
"name": "Name",
|
6
|
+
"type": "Text",
|
7
|
+
"required": true,
|
8
|
+
"localized": true
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"id": "likes",
|
12
|
+
"name": "Likes",
|
13
|
+
"type": "Array",
|
14
|
+
"required": false,
|
15
|
+
"localized": false,
|
16
|
+
"items": {
|
17
|
+
"type": "Symbol"
|
18
|
+
}
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"id": "color",
|
22
|
+
"name": "Color",
|
23
|
+
"type": "Symbol",
|
24
|
+
"required": false,
|
25
|
+
"localized": false
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"id": "bestFriend",
|
29
|
+
"name": "Best Friend",
|
30
|
+
"type": "Link",
|
31
|
+
"required": false,
|
32
|
+
"localized": false,
|
33
|
+
"linkType": "Entry"
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"id": "birthday",
|
37
|
+
"name": "Birthday",
|
38
|
+
"type": "Date",
|
39
|
+
"required": false,
|
40
|
+
"localized": false
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"id": "lifes",
|
44
|
+
"name": "Lifes left",
|
45
|
+
"type": "Integer",
|
46
|
+
"required": false,
|
47
|
+
"localized": false,
|
48
|
+
"disabled": true
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"id": "lives",
|
52
|
+
"name": "Lives left",
|
53
|
+
"type": "Integer",
|
54
|
+
"required": false,
|
55
|
+
"localized": false
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"id": "image",
|
59
|
+
"name": "Image",
|
60
|
+
"required": false,
|
61
|
+
"localized": false,
|
62
|
+
"type": "Link",
|
63
|
+
"linkType": "Asset"
|
64
|
+
}
|
65
|
+
],
|
66
|
+
"name": "Cat",
|
67
|
+
"displayField": "name",
|
68
|
+
"description": "Meow.",
|
69
|
+
"sys": {
|
70
|
+
"space": {
|
71
|
+
"sys": {
|
72
|
+
"type": "Link",
|
73
|
+
"linkType": "Space",
|
74
|
+
"id": "cfexampleapi"
|
75
|
+
}
|
76
|
+
},
|
77
|
+
"type": "ContentType",
|
78
|
+
"id": "cat",
|
79
|
+
"revision": 2,
|
80
|
+
"createdAt": "2013-06-27T22:46:12.852Z",
|
81
|
+
"updatedAt": "2013-09-02T13:14:47.863Z"
|
82
|
+
}
|
83
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
{
|
2
|
+
"fields": {
|
3
|
+
"name": "Nyan Cat",
|
4
|
+
"likes": [
|
5
|
+
"rainbows",
|
6
|
+
"fish"
|
7
|
+
],
|
8
|
+
"color": "rainbow",
|
9
|
+
"bestFriend": {
|
10
|
+
"sys": {
|
11
|
+
"type": "Link",
|
12
|
+
"linkType": "Entry",
|
13
|
+
"id": "happycat"
|
14
|
+
}
|
15
|
+
},
|
16
|
+
"birthday": "2011-04-04T22:00:00+00:00",
|
17
|
+
"lives": 1337,
|
18
|
+
"image": {
|
19
|
+
"sys": {
|
20
|
+
"type": "Link",
|
21
|
+
"linkType": "Asset",
|
22
|
+
"id": "nyancat"
|
23
|
+
}
|
24
|
+
}
|
25
|
+
},
|
26
|
+
"sys": {
|
27
|
+
"space": {
|
28
|
+
"sys": {
|
29
|
+
"type": "Link",
|
30
|
+
"linkType": "Space",
|
31
|
+
"id": "cfexampleapi"
|
32
|
+
}
|
33
|
+
},
|
34
|
+
"type": "Entry",
|
35
|
+
"contentType": {
|
36
|
+
"sys": {
|
37
|
+
"type": "Link",
|
38
|
+
"linkType": "ContentType",
|
39
|
+
"id": "cat"
|
40
|
+
}
|
41
|
+
},
|
42
|
+
"id": "nyancat",
|
43
|
+
"revision": 5,
|
44
|
+
"createdAt": "2013-06-27T22:46:19.513Z",
|
45
|
+
"updatedAt": "2013-09-04T09:19:39.027Z",
|
46
|
+
"locale": "en-US"
|
47
|
+
}
|
48
|
+
}
|