@@ -2,23 +2,19 @@ import "@typespec/http";
2
2
import "@typespec/rest" ;
3
3
import "@typespec/versioning" ;
4
4
import "@typespec/openapi3" ;
5
- import "@typespec/json-schema" ;
6
5
7
6
using TypeSpec .Versioning ;
8
7
using TypeSpec .Http ;
9
8
using TypeSpec .Rest ;
10
- using TypeSpec .JsonSchema ;
11
9
12
10
@ service ({
13
11
title : "Hexlet Fastify Rest Api Example" ,
14
12
})
15
- @ server ("https://localhost" , "Single server endpoint" )
16
- @ jsonSchema
17
13
@ versioned (Versions )
18
14
namespace FastifyRestApiExample ;
19
15
20
16
enum Versions {
21
- v1 ,
17
+ v1 , v2
22
18
}
23
19
24
20
/**
@@ -73,6 +69,7 @@ model User {
73
69
@ minLength (2 )
74
70
@ maxLength (100 )
75
71
fullName : string | null ;
72
+ @ added (Versions .v2 ) phone : string ;
76
73
77
74
@ format ("email" )
78
75
email : string ;
@@ -129,32 +126,35 @@ model CourseLessonCreateDTO {
129
126
}
130
127
131
128
@ route ("/users" )
132
- @ useAuth (BearerAuth )
133
129
namespace users {
134
130
@ get
131
+ @ useAuth (BearerAuth )
135
132
op index (@ query page ? : numeric = 1 ): {
136
133
@ body users : {
137
134
data : User [];
138
135
};
139
136
};
140
137
141
138
@ get
139
+ @ useAuth (BearerAuth )
142
140
op show (@ path id : numeric ): {
143
- @ body user : User ;
141
+ @ body _ : User ;
144
142
} | NotFoundError ;
145
143
146
144
@ post
147
- op create (@ body user : UserCreateDTO ): {
148
- @ body user : User ;
145
+ op create (@ body _ : UserCreateDTO ): {
146
+ @ body _ : User ;
149
147
@ statusCode statusCode : 201 ;
150
148
} | UnprocessableEntityError ;
151
149
152
150
@ patch
151
+ @ useAuth (BearerAuth )
153
152
op update (@ path id : numeric , @ body user : UserEditDTO ): {
154
153
@ body user : User ;
155
154
} | NotFoundError | UnprocessableEntityError ;
156
155
157
156
@ delete
157
+ @ useAuth (BearerAuth )
158
158
op destroy (@ path id : numeric ): {
159
159
@ statusCode statusCode : 204 ;
160
160
} | NotFoundError ;
0 commit comments