Skip to content

Commit beb8984

Browse files
committed
Merge branch 'release/3.1.0'
2 parents f55c9d3 + d0aefdf commit beb8984

18 files changed

+130
-90
lines changed

1.0/responses/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ constructor, or the static `make` method if you need to chain any of our
7272
helper methods. For example:
7373

7474
```php
75-
use LaravelJsonApi\Core\Response\DataResponse;
75+
use LaravelJsonApi\Core\Responses\DataResponse;
7676

7777
return new DataResponse($model);
7878
// or
@@ -117,7 +117,7 @@ To create a related response, you need to provide three arguments:
117117
For example, given a `post` model, with a `tags` relationship:
118118

119119
```php
120-
use LaravelJsonApi\Core\Response\RelatedResponse;
120+
use LaravelJsonApi\Core\Responses\RelatedResponse;
121121

122122
return new RelatedResponse($post, 'tags', $post->tags);
123123
// or
@@ -156,7 +156,7 @@ To create a relationship response, you need to provide three arguments:
156156
For example, given a `post` model, with a `tags` relationship:
157157

158158
```php
159-
use LaravelJsonApi\Core\Response\RelationshipResponse;
159+
use LaravelJsonApi\Core\Responses\RelationshipResponse;
160160

161161
return new RelationshipResponse($post, 'tags', $post->tags);
162162
// or
@@ -187,7 +187,7 @@ a Laravel collection.
187187
For example:
188188

189189
```php
190-
use LaravelJsonApi\Core\Response\MetaResponse;
190+
use LaravelJsonApi\Core\Responses\MetaResponse;
191191

192192
return new MetaResponse(['foo' => 'bar']);
193193
// or

1.0/routing/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ JsonApiRoute::server('v1')
6262
->prefix('v1')
6363
->resources(function ($server) {
6464
$server->resource('posts', PostController::class);
65-
$server->resources('tags', TagController::class);
65+
$server->resource('tags', TagController::class);
6666
});
6767
```
6868

@@ -76,7 +76,7 @@ JsonApiRoute::server('v1')
7676
->prefix('v1')
7777
->resources(function ($server) {
7878
$server->resource('posts', JsonApiController::class);
79-
$server->resources('tags', JsonApiController::class);
79+
$server->resource('tags', JsonApiController::class);
8080
});
8181
```
8282

1.0/tutorial/08-fetching-resources.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1407,7 +1407,7 @@ is in the `PostSchema` class - e.g. ensuring that a provided `sort` parameter
14071407
is a field that is actually marked as sortable.
14081408

14091409
We can improve the validation to ensure there are some more specific rules,
1410-
e.g. ensuring the the `author` filter only receives integer ids.
1410+
e.g. ensuring the `author` filter only receives integer ids.
14111411

14121412
Run the following command:
14131413

2.0/responses/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ constructor, or the static `make` method if you need to chain any of our
7272
helper methods. For example:
7373

7474
```php
75-
use LaravelJsonApi\Core\Response\DataResponse;
75+
use LaravelJsonApi\Core\Responses\DataResponse;
7676

7777
return new DataResponse($model);
7878
// or
@@ -117,7 +117,7 @@ To create a related response, you need to provide three arguments:
117117
For example, given a `post` model, with a `tags` relationship:
118118

119119
```php
120-
use LaravelJsonApi\Core\Response\RelatedResponse;
120+
use LaravelJsonApi\Core\Responses\RelatedResponse;
121121

122122
return new RelatedResponse($post, 'tags', $post->tags);
123123
// or
@@ -156,7 +156,7 @@ To create a relationship response, you need to provide three arguments:
156156
For example, given a `post` model, with a `tags` relationship:
157157

158158
```php
159-
use LaravelJsonApi\Core\Response\RelationshipResponse;
159+
use LaravelJsonApi\Core\Responses\RelationshipResponse;
160160

161161
return new RelationshipResponse($post, 'tags', $post->tags);
162162
// or
@@ -187,7 +187,7 @@ a Laravel collection.
187187
For example:
188188

189189
```php
190-
use LaravelJsonApi\Core\Response\MetaResponse;
190+
use LaravelJsonApi\Core\Responses\MetaResponse;
191191

192192
return new MetaResponse(['foo' => 'bar']);
193193
// or

2.0/routing/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ JsonApiRoute::server('v1')
6262
->prefix('v1')
6363
->resources(function ($server) {
6464
$server->resource('posts', PostController::class);
65-
$server->resources('tags', TagController::class);
65+
$server->resource('tags', TagController::class);
6666
});
6767
```
6868

@@ -76,7 +76,7 @@ JsonApiRoute::server('v1')
7676
->prefix('v1')
7777
->resources(function ($server) {
7878
$server->resource('posts', JsonApiController::class);
79-
$server->resources('tags', JsonApiController::class);
79+
$server->resource('tags', JsonApiController::class);
8080
});
8181
```
8282

2.0/tutorial/05-creating-resources.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ Open the `app/JsonApi/V1/Server.php` class, and update it as follows:
166166
{
167167
- // no-op
168168
+ Post::creating(static function (Post $post): void {
169-
+. $post->author()->associate(Auth::user());
169+
+ $post->author()->associate(Auth::user());
170170
+ });
171171
}
172172

2.0/tutorial/08-fetching-resources.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1407,7 +1407,7 @@ is in the `PostSchema` class - e.g. ensuring that a provided `sort` parameter
14071407
is a field that is actually marked as sortable.
14081408

14091409
We can improve the validation to ensure there are some more specific rules,
1410-
e.g. ensuring the the `author` filter only receives integer ids.
1410+
e.g. ensuring the `author` filter only receives integer ids.
14111411

14121412
Run the following command:
14131413

3.0/getting-started/upgrade.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
[[toc]]
44

5+
## Upgrading to 3.x from 2.x
6+
7+
Version 3.0 upgrades the package to Laravel 10. There are no significant
8+
breaking changes, so you should be able to immediately upgrade when you
9+
upgrade your application to Laravel 10. The minor breaking changes are
10+
detailed in the [release.](https://github.com/laravel-json-api/laravel/releases/tag/v3.0.0)
11+
12+
To upgrade, run the following commands:
13+
14+
```bash
15+
composer require laravel-json-api/laravel --no-update
16+
composer require laravel-json-api/testing --dev --no-update
17+
composer up "laravel-json-api/*" cloudcreativity/json-api-testing
18+
```
19+
520
## Upgrading to 2.x from 1.x
621

722
Version 2.0 adds support for PHP 8.1, and supports both Laravel 8 and 9.

3.0/responses/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ constructor, or the static `make` method if you need to chain any of our
7272
helper methods. For example:
7373

7474
```php
75-
use LaravelJsonApi\Core\Response\DataResponse;
75+
use LaravelJsonApi\Core\Responses\DataResponse;
7676

7777
return new DataResponse($model);
7878
// or
@@ -117,7 +117,7 @@ To create a related response, you need to provide three arguments:
117117
For example, given a `post` model, with a `tags` relationship:
118118

119119
```php
120-
use LaravelJsonApi\Core\Response\RelatedResponse;
120+
use LaravelJsonApi\Core\Responses\RelatedResponse;
121121

122122
return new RelatedResponse($post, 'tags', $post->tags);
123123
// or
@@ -156,7 +156,7 @@ To create a relationship response, you need to provide three arguments:
156156
For example, given a `post` model, with a `tags` relationship:
157157

158158
```php
159-
use LaravelJsonApi\Core\Response\RelationshipResponse;
159+
use LaravelJsonApi\Core\Responses\RelationshipResponse;
160160

161161
return new RelationshipResponse($post, 'tags', $post->tags);
162162
// or
@@ -187,7 +187,7 @@ a Laravel collection.
187187
For example:
188188

189189
```php
190-
use LaravelJsonApi\Core\Response\MetaResponse;
190+
use LaravelJsonApi\Core\Responses\MetaResponse;
191191

192192
return new MetaResponse(['foo' => 'bar']);
193193
// or

3.0/routing/README.md

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@ your `routes/api.php` file as follows:
2323
use App\Http\Controllers\Api\V1\PostController;
2424
use App\Http\Controllers\Api\V1\TagController;
2525
use App\Http\Controllers\Api\V1\UserController;
26+
use LaravelJsonApi\Laravel\Facades\JsonApiRoute;
27+
use LaravelJsonApi\Laravel\Routing\ResourceRegistrar;
2628

2729
JsonApiRoute::server('v1')
2830
->prefix('v1')
29-
->resources(function ($server) {
31+
->resources(function (ResourceRegistrar $server) {
3032
$server->resource('posts', PostController::class);
3133
$server->resource('tags', TagController::class);
3234
$server->resource('users', UserController::class);
@@ -57,32 +59,36 @@ routes. For example:
5759
```php
5860
use App\Http\Controllers\Api\V1\PostController;
5961
use App\Http\Controllers\Api\V1\TagController;
62+
use LaravelJsonApi\Laravel\Facades\JsonApiRoute;
63+
use LaravelJsonApi\Laravel\Routing\ResourceRegistrar;
6064

6165
JsonApiRoute::server('v1')
6266
->prefix('v1')
63-
->resources(function ($server) {
67+
->resources(function (ResourceRegistrar $server) {
6468
$server->resource('posts', PostController::class);
65-
$server->resources('tags', TagController::class);
69+
$server->resource('tags', TagController::class);
6670
});
6771
```
6872

6973
As controllers are optional, it is also possible to use the default
7074
`JsonApiController`. For example:
7175

7276
```php
77+
use LaravelJsonApi\Laravel\Facades\JsonApiRoute;
7378
use LaravelJsonApi\Laravel\Http\Controllers\JsonApiController;
79+
use LaravelJsonApi\Laravel\Routing\ResourceRegistrar;
7480

7581
JsonApiRoute::server('v1')
7682
->prefix('v1')
77-
->resources(function ($server) {
83+
->resources(function (ResourceRegistrar $server) {
7884
$server->resource('posts', JsonApiController::class);
79-
$server->resources('tags', JsonApiController::class);
85+
$server->resource('tags', JsonApiController::class);
8086
});
8187
```
8288

8389
Both the above examples work if the `$namespace` property of your application's
8490
`RouteServiceProvider` is **not** set. This is the case in a fresh installation
85-
of a Laravel 8 application.
91+
of a Laravel >=8 application.
8692

8793
Traditionally, Laravel's route groups have allowed controller namespaces
8894
to be set via groups. This works if the `$namespace` property on your
@@ -100,7 +106,7 @@ the `App\Http\Controllers\Api\V1` namespace:
100106
JsonApiRoute::server('v1')
101107
->prefix('v1')
102108
->namespace('Api\V1')
103-
->resources(function ($server) {
109+
->resources(function (ResourceRegistrar $server) {
104110
// Expects controller to be `App\Http\Api\V1\PostController`
105111
$server->resource('posts');
106112
});
@@ -117,7 +123,7 @@ controller name as the second argument to the `resource()` method:
117123
JsonApiRoute::server('v1')
118124
->prefix('v1')
119125
->namespace('Api\V1')
120-
->resources(function ($server) {
126+
->resources(function (ResourceRegistrar $server) {
121127
// Controller is `App\Http\Api\V1\BlogPostController`
122128
$server->resource('posts', 'BlogPostController');
123129
});
@@ -128,12 +134,14 @@ When using controller namespacing, if you want to use the generic
128134
`resource()` method. For example:
129135

130136
```php
137+
use LaravelJsonApi\Laravel\Facades\JsonApiRoute;
131138
use LaravelJsonApi\Laravel\Http\Controllers\JsonApiController;
139+
use LaravelJsonApi\Laravel\Routing\ResourceRegistrar;
132140

133141
JsonApiRoute::server('v1')
134142
->prefix('v1')
135143
->namespace('Api\V1')
136-
->resources(function ($server) {
144+
->resources(function (ResourceRegistrar $server) {
137145
$server->resource('posts', '\\' . JsonApiController::class);
138146
});
139147
```
@@ -146,7 +154,7 @@ For example:
146154
```php
147155
JsonApiRoute::server('v1')
148156
->domain('api.myapp.com')
149-
->resources(function ($server) {
157+
->resources(function (ResourceRegistrar $server) {
150158
$server->resource('posts', PostController::class);
151159
$server->resource('tags', TagController::class);
152160
$server->resource('users', UserController::class);
@@ -158,7 +166,7 @@ Or if you had wildcard sub-domains:
158166
```php
159167
JsonApiRoute::server('v1')
160168
->domain('{account}.myapp.com')
161-
->resources(function ($server) {
169+
->resources(function (ResourceRegistrar $server) {
162170
$server->resource('posts', PostController::class);
163171
$server->resource('tags', TagController::class);
164172
$server->resource('users', UserController::class);
@@ -181,7 +189,7 @@ In this example:
181189
JsonApiRoute::server('v1')
182190
->middleware('my-middleware1', 'my-middleware2')
183191
->prefix('v1')
184-
->resources(function ($server) {
192+
->resources(function (ResourceRegistrar $server) {
185193
$server->resource('posts', PostController::class);
186194
});
187195
```
@@ -200,7 +208,7 @@ Route::middleware('my-middleware1')->group(function () {
200208
JsonApiRoute::server('v1')
201209
->middleware('my-middleware2')
202210
->prefix('v1')
203-
->resources(function ($server) {
211+
->resources(function (ResourceRegistrar $server) {
204212
$server->resource('posts', PostController::class);
205213
});
206214
});
@@ -225,7 +233,7 @@ In the following example, we override the default route name of `v1` to
225233
JsonApiRoute::server('v1')
226234
->name('api:v1')
227235
->prefix('v1')
228-
->resources(function ($server) {
236+
->resources(function (ResourceRegistrar $server) {
229237
$server->resource('posts', PostController::class);
230238
});
231239
```
@@ -241,7 +249,7 @@ For example, the following registers routes for the `posts`, `tags` and
241249
```php
242250
JsonApiRoute::server('v1')
243251
->prefix('v1')
244-
->resources(function ($server) {
252+
->resources(function (ResourceRegistrar $server) {
245253
$server->resource('posts', PostController::class);
246254
$server->resource('tags', TagController::class);
247255
$server->resource('users', UserController::class);
@@ -348,7 +356,9 @@ For example, if we want to register routes for a `posts` resource's
348356
`author`, `comments` and `tags` relationships:
349357

350358
```php
351-
$server->resource('posts')->relationships(function ($relationships) {
359+
use LaravelJsonApi\Laravel\Routing\Relationships;
360+
361+
$server->resource('posts')->relationships(function (Relationships $relationships) {
352362
$relationships->hasOne('author');
353363
$relationships->hasMany('comments');
354364
$relationships->hasMany('tags');
@@ -417,7 +427,8 @@ Use our short-hands of `related`, `show`, `update`, `attach` and `detach`
417427
for the actions:
418428

419429
```php
420-
$relationships->hasOne('author')
430+
$relationships
431+
->hasOne('author')
421432
->name('related', 'author.related')
422433
->name('show', 'author.relationships.show');
423434
// is identical to...
@@ -475,7 +486,7 @@ JSON:API routes:
475486
JsonApiRoute::server('v1')
476487
->prefix('v1')
477488
->withoutMiddleware(\Illuminate\Routing\Middleware\SubstituteBindings::class)
478-
->resources(function ($server) {
489+
->resources(function (ResourceRegistrar $server) {
479490
$server->resource('posts', PostController::class);
480491
});
481492
```

0 commit comments

Comments
 (0)