Skip to content

Commit ec106af

Browse files
nick-zhtPl0ch
authored andcommitted
Add Content-Type for posts (#34)
* add Content-Type for posts * implement feedback * remove obsolete import * fix header * adjust test * remove composite header
1 parent 4a10ab0 commit ec106af

File tree

3 files changed

+35
-29
lines changed

3 files changed

+35
-29
lines changed

src/Constants/Constants.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,7 @@
99
const COMPATIBILITY_FORWARD_TRANSITIVE = 'FORWARD_TRANSITIVE';
1010
const COMPATIBILITY_FULL = 'FULL';
1111
const COMPATIBILITY_FULL_TRANSITIVE = 'FULL_TRANSITIVE';
12-
1312
const VERSION_LATEST = 'latest';
13+
const ACCEPT_HEADER = ['Accept' => 'application/vnd.schemaregistry.v1+json'];
14+
const CONTENT_TYPE_HEADER = ['Content-Type' => 'application/vnd.schemaregistry.v1+json'];
15+

src/Requests/Functions.php

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
use GuzzleHttp\Psr7\Request;
77
use GuzzleHttp\UriTemplate;
88
use Psr\Http\Message\RequestInterface;
9+
use const FlixTech\SchemaRegistryApi\Constants\ACCEPT_HEADER;
910
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_BACKWARD;
1011
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_BACKWARD_TRANSITIVE;
1112
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FORWARD;
1213
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FORWARD_TRANSITIVE;
1314
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FULL;
1415
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FULL_TRANSITIVE;
1516
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_NONE;
17+
use const FlixTech\SchemaRegistryApi\Constants\CONTENT_TYPE_HEADER;
1618
use const FlixTech\SchemaRegistryApi\Constants\VERSION_LATEST;
1719
use function implode;
1820

@@ -21,7 +23,7 @@ function allSubjectsRequest(): RequestInterface
2123
return new Request(
2224
'GET',
2325
'/subjects',
24-
['Accept' => 'application/vnd.schemaregistry.v1+json']
26+
[ACCEPT_HEADER]
2527
);
2628
}
2729

@@ -30,7 +32,7 @@ function allSubjectVersionsRequest(string $subjectName): RequestInterface
3032
return new Request(
3133
'GET',
3234
(new UriTemplate())->expand('/subjects/{name}/versions', ['name' => $subjectName]),
33-
['Accept' => 'application/vnd.schemaregistry.v1+json']
35+
[ACCEPT_HEADER]
3436
);
3537
}
3638

@@ -42,7 +44,7 @@ function singleSubjectVersionRequest(string $subjectName, string $versionId): Re
4244
'/subjects/{name}/versions/{id}',
4345
['name' => $subjectName, 'id' => $versionId]
4446
),
45-
['Accept' => 'application/vnd.schemaregistry.v1+json']
47+
[ACCEPT_HEADER]
4648
);
4749
}
4850

@@ -51,7 +53,7 @@ function registerNewSchemaVersionWithSubjectRequest(string $schema, string $subj
5153
return new Request(
5254
'POST',
5355
(new UriTemplate())->expand('/subjects/{name}/versions', ['name' => $subjectName]),
54-
['Accept' => 'application/vnd.schemaregistry.v1+json'],
56+
[CONTENT_TYPE_HEADER, ACCEPT_HEADER],
5557
prepareJsonSchemaForTransfer(validateSchemaStringAsJson($schema))
5658
);
5759
}
@@ -64,7 +66,7 @@ function checkSchemaCompatibilityAgainstVersionRequest(string $schema, string $s
6466
'/compatibility/subjects/{name}/versions/{version}',
6567
['name' => $subjectName, 'version' => $versionId]
6668
),
67-
['Accept' => 'application/vnd.schemaregistry.v1+json'],
69+
[CONTENT_TYPE_HEADER, ACCEPT_HEADER],
6870
prepareJsonSchemaForTransfer(validateSchemaStringAsJson($schema))
6971
);
7072
}
@@ -74,7 +76,7 @@ function checkIfSubjectHasSchemaRegisteredRequest(string $subjectName, string $s
7476
return new Request(
7577
'POST',
7678
(new UriTemplate())->expand('/subjects/{name}', ['name' => $subjectName]),
77-
['Accept' => 'application/vnd.schemaregistry.v1+json'],
79+
[CONTENT_TYPE_HEADER, ACCEPT_HEADER],
7880
prepareJsonSchemaForTransfer(validateSchemaStringAsJson($schema))
7981
);
8082
}
@@ -84,7 +86,7 @@ function schemaRequest(string $id): RequestInterface
8486
return new Request(
8587
'GET',
8688
(new UriTemplate())->expand('/schemas/ids/{id}', ['id' => $id]),
87-
['Accept' => 'application/vnd.schemaregistry.v1+json']
89+
[ACCEPT_HEADER]
8890
);
8991
}
9092

@@ -93,7 +95,7 @@ function defaultCompatibilityLevelRequest(): RequestInterface
9395
return new Request(
9496
'GET',
9597
'/config',
96-
['Accept' => 'application/vnd.schemaregistry.v1+json']
98+
[ACCEPT_HEADER]
9799
);
98100
}
99101

@@ -102,7 +104,7 @@ function changeDefaultCompatibilityLevelRequest(string $level): RequestInterface
102104
return new Request(
103105
'PUT',
104106
'/config',
105-
['Accept' => 'application/vnd.schemaregistry.v1+json'],
107+
[ACCEPT_HEADER],
106108
prepareCompatibilityLevelForTransport(validateCompatibilityLevel($level))
107109
);
108110
}
@@ -112,7 +114,7 @@ function subjectCompatibilityLevelRequest(string $subjectName): RequestInterface
112114
return new Request(
113115
'GET',
114116
(new UriTemplate())->expand('/config/{subject}', ['subject' => $subjectName]),
115-
['Accept' => 'application/vnd.schemaregistry.v1+json']
117+
[ACCEPT_HEADER]
116118
);
117119
}
118120

@@ -121,7 +123,7 @@ function changeSubjectCompatibilityLevelRequest(string $subjectName, string $lev
121123
return new Request(
122124
'PUT',
123125
(new UriTemplate())->expand('/config/{subject}', ['subject' => $subjectName]),
124-
['Accept' => 'application/vnd.schemaregistry.v1+json'],
126+
[ACCEPT_HEADER],
125127
prepareCompatibilityLevelForTransport(validateCompatibilityLevel($level))
126128
);
127129
}
@@ -194,7 +196,7 @@ function deleteSubjectRequest(string $subjectName)
194196
return new Request(
195197
'DELETE',
196198
(new UriTemplate())->expand('/subjects/{name}', ['name' => $subjectName]),
197-
['Accept' => 'application/vnd.schemaregistry.v1+json']
199+
[ACCEPT_HEADER]
198200
);
199201
}
200202

@@ -203,6 +205,6 @@ function deleteSubjectVersionRequest(string $subjectName, string $versionId)
203205
return new Request(
204206
'DELETE',
205207
(new UriTemplate())->expand('/subjects/{name}/versions/{version}', ['name' => $subjectName, 'version' => $versionId]),
206-
['Accept' => 'application/vnd.schemaregistry.v1+json']
208+
[ACCEPT_HEADER]
207209
);
208210
}

test/Requests/FunctionsTest.php

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
namespace FlixTech\SchemaRegistryApi\Test\Requests;
66

77
use PHPUnit\Framework\TestCase;
8+
use const FlixTech\SchemaRegistryApi\Constants\ACCEPT_HEADER;
89
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_BACKWARD;
910
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_BACKWARD_TRANSITIVE;
1011
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FORWARD;
1112
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FORWARD_TRANSITIVE;
1213
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FULL;
1314
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_FULL_TRANSITIVE;
1415
use const FlixTech\SchemaRegistryApi\Constants\COMPATIBILITY_NONE;
16+
use const FlixTech\SchemaRegistryApi\Constants\CONTENT_TYPE_HEADER;
1517
use const FlixTech\SchemaRegistryApi\Constants\VERSION_LATEST;
1618
use function FlixTech\SchemaRegistryApi\Requests\allSubjectsRequest;
1719
use function FlixTech\SchemaRegistryApi\Requests\allSubjectVersionsRequest;
@@ -44,7 +46,7 @@ public function it_should_produce_a_Request_to_get_all_subjects(): void
4446

4547
$this->assertEquals('GET', $request->getMethod());
4648
$this->assertEquals('/subjects', $request->getUri());
47-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
49+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
4850
}
4951

5052
/**
@@ -56,7 +58,7 @@ public function it_should_produce_a_Request_to_get_all_subject_versions(): void
5658

5759
$this->assertEquals('GET', $request->getMethod());
5860
$this->assertEquals('/subjects/test/versions', $request->getUri());
59-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
61+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
6062
}
6163

6264
/**
@@ -68,7 +70,7 @@ public function it_should_produce_a_Request_to_get_a_specific_subject_version():
6870

6971
$this->assertEquals('GET', $request->getMethod());
7072
$this->assertEquals('/subjects/test/versions/3', $request->getUri());
71-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
73+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
7274
}
7375

7476
/**
@@ -80,14 +82,14 @@ public function it_should_produce_a_request_to_register_a_new_schema_version():
8082

8183
$this->assertEquals('POST', $request->getMethod());
8284
$this->assertEquals('/subjects/test/versions', $request->getUri());
83-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
85+
$this->assertEquals([CONTENT_TYPE_HEADER, ACCEPT_HEADER], $request->getHeaders());
8486
$this->assertEquals('{"schema":"{\"type\":\"string\"}"}', $request->getBody()->getContents());
8587

8688
$request = registerNewSchemaVersionWithSubjectRequest('{"schema": "{\"type\": \"string\"}"}', 'test');
8789

8890
$this->assertEquals('POST', $request->getMethod());
8991
$this->assertEquals('/subjects/test/versions', $request->getUri());
90-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
92+
$this->assertEquals([CONTENT_TYPE_HEADER, ACCEPT_HEADER], $request->getHeaders());
9193
$this->assertEquals('{"schema":"{\"type\": \"string\"}"}', $request->getBody()->getContents());
9294
}
9395

@@ -105,7 +107,7 @@ public function it_should_produce_a_request_to_check_schema_compatibility_agains
105107
$this->assertEquals('POST', $request->getMethod());
106108
$this->assertEquals('/compatibility/subjects/test/versions/latest', $request->getUri());
107109
$this->assertEquals('{"schema":"{\"type\":\"test\"}"}', $request->getBody()->getContents());
108-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
110+
$this->assertEquals([CONTENT_TYPE_HEADER, ACCEPT_HEADER], $request->getHeaders());
109111
}
110112

111113
/**
@@ -118,7 +120,7 @@ public function it_should_produce_a_request_to_check_if_a_subject_already_has_a_
118120
$this->assertEquals('POST', $request->getMethod());
119121
$this->assertEquals('/subjects/test', $request->getUri());
120122
$this->assertEquals('{"schema":"{\"type\":\"test\"}"}', $request->getBody()->getContents());
121-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
123+
$this->assertEquals([CONTENT_TYPE_HEADER, ACCEPT_HEADER], $request->getHeaders());
122124
}
123125

124126
/**
@@ -130,7 +132,7 @@ public function it_should_produce_a_request_to_get_a_specific_schema_by_id(): vo
130132

131133
$this->assertEquals('GET', $request->getMethod());
132134
$this->assertEquals('/schemas/ids/3', $request->getUri());
133-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
135+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
134136
}
135137

136138
/**
@@ -142,7 +144,7 @@ public function it_should_produce_a_request_to_get_the_global_compatibility_leve
142144

143145
$this->assertEquals('GET', $request->getMethod());
144146
$this->assertEquals('/config', $request->getUri());
145-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
147+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
146148
}
147149

148150
/**
@@ -155,7 +157,7 @@ public function it_should_produce_a_request_to_change_the_global_compatibility_l
155157
$this->assertEquals('PUT', $request->getMethod());
156158
$this->assertEquals('/config', $request->getUri());
157159
$this->assertEquals('{"compatibility":"FULL"}', $request->getBody()->getContents());
158-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
160+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
159161
}
160162

161163
/**
@@ -167,7 +169,7 @@ public function it_should_produce_a_request_to_get_the_subject_compatibility_lev
167169

168170
$this->assertEquals('GET', $request->getMethod());
169171
$this->assertEquals('/config/test', $request->getUri());
170-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
172+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
171173
}
172174

173175
/**
@@ -180,7 +182,7 @@ public function it_should_produce_a_request_to_change_the_subject_compatibility_
180182
$this->assertEquals('PUT', $request->getMethod());
181183
$this->assertEquals('/config/test', $request->getUri());
182184
$this->assertEquals('{"compatibility":"FORWARD"}', $request->getBody()->getContents());
183-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
185+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
184186
}
185187

186188
/**
@@ -348,7 +350,7 @@ public function it_should_produce_a_valid_subject_deletion_request(): void
348350

349351
$this->assertEquals('DELETE', $request->getMethod());
350352
$this->assertEquals('/subjects/test', $request->getUri());
351-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
353+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
352354
}
353355

354356
/**
@@ -360,12 +362,12 @@ public function it_should_produce_a_valid_subject_version_deletion_request(): vo
360362

361363
$this->assertEquals('DELETE', $request->getMethod());
362364
$this->assertEquals('/subjects/test/versions/latest', $request->getUri());
363-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
365+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
364366

365367
$request = deleteSubjectVersionRequest('test', '5');
366368

367369
$this->assertEquals('DELETE', $request->getMethod());
368370
$this->assertEquals('/subjects/test/versions/5', $request->getUri());
369-
$this->assertEquals(['application/vnd.schemaregistry.v1+json'], $request->getHeader('Accept'));
371+
$this->assertEquals([ACCEPT_HEADER], $request->getHeaders());
370372
}
371373
}

0 commit comments

Comments
 (0)