Some fixed to naming etc
This commit is contained in:
parent
8d23b67592
commit
2dee4726d7
5 changed files with 62 additions and 9 deletions
45
.gitignore
vendored
Normal file
45
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
lib-cov
|
||||||
|
*.seed
|
||||||
|
*.log
|
||||||
|
*.csv
|
||||||
|
*.dat
|
||||||
|
*.out
|
||||||
|
*.pid
|
||||||
|
*.gz
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
pids
|
||||||
|
logs
|
||||||
|
results
|
||||||
|
tmp
|
||||||
|
|
||||||
|
# Build
|
||||||
|
public/css/main.css
|
||||||
|
|
||||||
|
# Coverage reports
|
||||||
|
coverage
|
||||||
|
|
||||||
|
# API keys and secrets
|
||||||
|
.env
|
||||||
|
|
||||||
|
# Dependency directory
|
||||||
|
node_modules
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# TypeScript Target DIR
|
||||||
|
build
|
||||||
|
|
||||||
|
# Editors
|
||||||
|
.idea
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
# OS metadata
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Ignore built ts files
|
||||||
|
dist/**/*
|
||||||
|
build/*
|
||||||
|
|
||||||
|
# ignore yarn.lock
|
||||||
|
yarn.lock
|
||||||
|
|
@ -39,6 +39,14 @@ start();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Try making a POST request with this "deranged" JSON:
|
Try making a POST request with this "deranged" JSON:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ const TBUser = Type.Object({
|
||||||
//console.log(JSON.stringify(TBUser, null, 2));
|
//console.log(JSON.stringify(TBUser, null, 2));
|
||||||
|
|
||||||
// Convert to YAML
|
// Convert to YAML
|
||||||
const openApiYaml = yaml.dump(TBUser);
|
const jsonSchemaYaml = yaml.dump(TBUser);
|
||||||
|
|
||||||
console.log('JSON Schema (YAML):');
|
console.log('JSON Schema (YAML):');
|
||||||
console.log(openApiYaml);
|
console.log(jsonSchemaYaml);
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,10 @@ const UserSchema = Type.Object({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Derive TypeScript type from the TypeBox schema
|
// Derive TypeScript type from the TypeBox schema
|
||||||
type User = Static<typeof UserSchema>;
|
type UserDTO = Static<typeof UserSchema>;
|
||||||
|
|
||||||
app.post<{
|
app.post<{
|
||||||
Body: User; // Using the derived TypeScript type
|
Body: UserDTO; // Using the derived TypeScript type
|
||||||
}>('/api/users', {
|
}>('/api/users', {
|
||||||
schema: {
|
schema: {
|
||||||
body: UserSchema // Using the TypeBox schema for validation
|
body: UserSchema // Using the TypeBox schema for validation
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ const UserSchema = Type.Object({
|
||||||
}, { $id: 'User' });
|
}, { $id: 'User' });
|
||||||
|
|
||||||
// Derive TypeScript type from the TypeBox schema
|
// Derive TypeScript type from the TypeBox schema
|
||||||
type User = Static<typeof UserSchema>;
|
type UserDTO = Static<typeof UserSchema>;
|
||||||
|
|
||||||
// Response schema for better documentation
|
// Response schema for better documentation
|
||||||
const ResponseSchema = Type.Object({
|
const ResponseSchema = Type.Object({
|
||||||
|
|
@ -48,10 +48,10 @@ async function startServer() {
|
||||||
buildLocalReference: (json, baseUri, fragment, i) => {
|
buildLocalReference: (json, baseUri, fragment, i) => {
|
||||||
// Use $id property from schema
|
// Use $id property from schema
|
||||||
if (json.$id) {
|
if (json.$id) {
|
||||||
return `#/components/schemas/${json.$id}`;
|
return `components_schemas_${json.$id}`;
|
||||||
}
|
}
|
||||||
// Fall back to default behavior
|
// Fall back to default behavior
|
||||||
return `#/components/schemas/${fragment[1]}${i}`;
|
return `components_schemas_${fragment[1]}${i}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -77,7 +77,7 @@ async function startServer() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, async (request, reply) => {
|
}, async (request, reply) => {
|
||||||
const user = request.body as User;
|
const user = request.body as UserDTO;
|
||||||
|
|
||||||
const canDrink = user.age >= 21;
|
const canDrink = user.age >= 21;
|
||||||
const greeting = `Hello ${user.name.toUpperCase()}, your email ${user.email.toLowerCase()} has been recorded`;
|
const greeting = `Hello ${user.name.toUpperCase()}, your email ${user.email.toLowerCase()} has been recorded`;
|
||||||
|
|
@ -95,7 +95,7 @@ async function startServer() {
|
||||||
}
|
}
|
||||||
}, async (request, reply) => {
|
}, async (request, reply) => {
|
||||||
// Sample data that follows our User type
|
// Sample data that follows our User type
|
||||||
const users: User[] = [
|
const users: UserDTO[] = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
name: "John Doe",
|
name: "John Doe",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue