Skip to content

Commit 90c3999

Browse files
Doc update : Refactor properties to use 'required' instead of nullable with null default
1 parent 506a855 commit 90c3999

7 files changed

Lines changed: 18 additions & 18 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The following steps describe how to create a JSON:API project.
4141
public class Person : Identifiable<long>
4242
{
4343
[Attr] public string? FirstName { get; set; }
44-
[Attr] public string LastName { get; set; } = null!;
44+
[Attr] public required string LastName { get; set; }
4545
[HasMany] public ISet<Person> Children { get; set; } = new HashSet<Person>();
4646
}
4747
```

docs/usage/common-pitfalls.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Now let's try to define the resource classes:
1717
public sealed class WebCustomer : Identifiable<long>
1818
{
1919
[Attr]
20-
public string Name { get; set; } = null!;
20+
public required string Name { get; set; }
2121

2222
[HasOne]
2323
public LoginAccount? Account { get; set; }
@@ -27,7 +27,7 @@ public sealed class WebCustomer : Identifiable<long>
2727
public sealed class AdminCustomer : Identifiable<long>
2828
{
2929
[Attr]
30-
public string Name { get; set; } = null!;
30+
public required string Name { get; set; }
3131

3232
[Attr]
3333
public string? CreditRating { get; set; }
@@ -40,7 +40,7 @@ public sealed class AdminCustomer : Identifiable<long>
4040
public sealed class LoginAccount : Identifiable<long>
4141
{
4242
[Attr]
43-
public string EmailAddress { get; set; } = null!;
43+
public required string EmailAddress { get; set; }
4444

4545
[HasOne]
4646
public ??? Customer { get; set; }

docs/usage/options.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,13 @@ public class Person : Identifiable<long>
141141
{
142142
[Attr]
143143
[MinLength(3)]
144-
public string FirstName { get; set; } = null!;
144+
public required string FirstName { get; set; }
145145

146146
[Attr]
147147
[Required]
148148
public int? Age { get; set; }
149149

150150
[HasOne]
151-
public LoginAccount Account { get; set; } = null!;
151+
public required LoginAccount Account { get; set; }
152152
}
153153
```

docs/usage/resources/attributes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class Person : Identifiable<long>
1111
public string? FirstName { get; set; }
1212

1313
[Attr]
14-
public string LastName { get; set; } = null!;
14+
public required string LastName { get; set; }
1515
}
1616
```
1717

@@ -54,7 +54,7 @@ Otherwise, the attribute is silently omitted.
5454
public class User : Identifiable<long>
5555
{
5656
[Attr(Capabilities = ~AttrCapabilities.AllowView)]
57-
public string Password { get; set; } = null!;
57+
public required string Password { get; set; }
5858
}
5959
```
6060

docs/usage/resources/inheritance.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Resource classes can be part of a type hierarchy. For example:
1010
public abstract class Human : Identifiable<long>
1111
{
1212
[Attr]
13-
public string Name { get; set; } = null!;
13+
public required string Name { get; set; }
1414

1515
[HasOne]
1616
public Man? Father { get; set; }

docs/usage/resources/nullability.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,13 @@ Example:
7272
public sealed class Label : Identifiable<long>
7373
{
7474
[Attr]
75-
public string Name { get; set; } = null!;
75+
public required string Name { get; set; }
7676

7777
[Attr]
7878
public string? RgbColor { get; set; }
7979

8080
[HasOne]
81-
public Person Creator { get; set; } = null!;
81+
public required Person Creator { get; set; }
8282

8383
[HasOne]
8484
public Label? Parent { get; set; }

docs/usage/resources/relationships.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ The next example defines that each car requires an engine, while an engine is op
3939
public sealed class Car : Identifiable<long>
4040
{
4141
[HasOne]
42-
public Engine Engine { get; set; } = null!;
42+
public required Engine Engine { get; set; }
4343
}
4444

4545
public sealed class Engine : Identifiable<long>
@@ -264,7 +264,7 @@ There are two ways the exposed relationship name is determined:
264264
public class TodoItem : Identifiable<long>
265265
{
266266
[HasOne(PublicName = "item-owner")]
267-
public Person Owner { get; set; } = null!;
267+
public required Person Owner { get; set; }
268268
}
269269
```
270270

@@ -297,7 +297,7 @@ Otherwise, the relationship (and its related resources, when included) are silen
297297
public class User : Identifiable<long>
298298
{
299299
[HasOne(Capabilities = ~HasOneCapabilities.AllowView)]
300-
public LoginAccount Account { get; set; } = null!;
300+
public required LoginAccount Account { get; set; }
301301
}
302302
```
303303

@@ -339,7 +339,7 @@ Indicates whether POST and PATCH requests can replace the relationship. When sen
339339
public class User : Identifiable<long>
340340
{
341341
[HasOne(Capabilities = ~HasOneCapabilities.AllowSet)]
342-
public LoginAccount Account { get; set; } = null!;
342+
public required LoginAccount Account { get; set; }
343343
}
344344
```
345345

@@ -400,7 +400,7 @@ So for the calculated property to be evaluated correctly, the related entity mus
400400
public class ShippingAddress : Identifiable<long>
401401
{
402402
[Attr]
403-
public string Street { get; set; } = null!;
403+
public required string Street { get; set; }
404404

405405
[Attr]
406406
public string? CountryName => Country?.DisplayName;
@@ -412,7 +412,7 @@ public class ShippingAddress : Identifiable<long>
412412

413413
public class Country
414414
{
415-
public string IsoCode { get; set; } = null!;
416-
public string DisplayName { get; set; } = null!;
415+
public required string IsoCode { get; set; }
416+
public required string DisplayName { get; set; }
417417
}
418418
```

0 commit comments

Comments
 (0)