Remplacer defineEventHandler par defineCachedEventHandler pour améliorer la mise en cache des réponses API

This commit is contained in:
2025-12-01 16:49:57 +01:00
parent 6f7cbf388a
commit f5ed4b109b
12 changed files with 50 additions and 12 deletions

View File

@@ -1,7 +1,10 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'contact') const result = await queryCollection(event, 'contact')
.where('extension', '=', 'json') .where('extension', '=', 'json')
.first() .first()
return result.body return result.body
}, {
maxAge: 60 * 60 * 24,
name: 'contact'
}) })

View File

@@ -1,4 +1,4 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'education') const result = await queryCollection(event, 'education')
.where('extension', '=', 'md') .where('extension', '=', 'md')
.all() .all()
@@ -12,4 +12,7 @@ export default defineEventHandler(async (event) => {
endDate: edu.meta.endDate, endDate: edu.meta.endDate,
location: edu.meta.location location: edu.meta.location
})) }))
}, {
maxAge: 60 * 60 * 24,
name: 'education'
}) })

View File

@@ -1,4 +1,4 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'experiences') const result = await queryCollection(event, 'experiences')
.where('extension', '=', 'md') .where('extension', '=', 'md')
.all() .all()
@@ -14,4 +14,8 @@ export default defineEventHandler(async (event) => {
location: exp.meta.location, location: exp.meta.location,
description: exp.meta.description description: exp.meta.description
})) }))
},
{
maxAge: 60 * 60 * 24,
name: 'experiences'
}) })

View File

@@ -1,7 +1,10 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'hobbies') const result = await queryCollection(event, 'hobbies')
.where('extension', '=', 'md') .where('extension', '=', 'md')
.first() .first()
return result.body return result.body
}, {
maxAge: 60 * 60 * 24,
name: 'hobbies'
}) })

View File

@@ -1,7 +1,10 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'languages') const result = await queryCollection(event, 'languages')
.where('extension', '=', 'json') .where('extension', '=', 'json')
.first() .first()
return result.body return result.body
}, {
maxAge: 60 * 60 * 24,
name: 'languages'
}) })

View File

@@ -1,7 +1,10 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'profile') const result = await queryCollection(event, 'profile')
.where('extension', '=', 'md') .where('extension', '=', 'md')
.first() .first()
return result return result
}, {
maxAge: 60 * 60 * 24,
name: 'profile'
}) })

View File

@@ -1,7 +1,10 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'projects') const result = await queryCollection(event, 'projects')
.where('extension', '=', 'md') .where('extension', '=', 'md')
.all() .all()
return result return result
}, {
maxAge: 60 * 60 * 24,
name: 'projects'
}) })

View File

@@ -1,3 +1,6 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
return sendRedirect(event, '/resumes/CV 2026 EN.pdf', 302) return sendRedirect(event, '/resumes/CV 2026 EN.pdf', 302)
}, {
maxAge: 60 * 60 * 24,
name: 'resume_en'
}) })

View File

@@ -1,3 +1,6 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
return sendRedirect(event, '/resumes/CV 2026 FR.pdf', 302) return sendRedirect(event, '/resumes/CV 2026 FR.pdf', 302)
}, {
maxAge: 60 * 60 * 24,
name: 'resume_fr'
}) })

View File

@@ -1,7 +1,10 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const result = await queryCollection(event, 'skills') const result = await queryCollection(event, 'skills')
.where('extension', '=', 'json') .where('extension', '=', 'json')
.first() .first()
return result.body return result.body
}, {
maxAge: 60 * 60 * 24,
name: 'skills'
}) })

View File

@@ -1,4 +1,7 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const { statusPage } = useRuntimeConfig(event) const { statusPage } = useRuntimeConfig(event)
return await $fetch(statusPage) return await $fetch(statusPage)
}, {
maxAge: 60 * 60,
name: 'status-page'
}) })

View File

@@ -1,4 +1,4 @@
export default defineEventHandler(async (event) => { export default defineCachedEventHandler(async (event) => {
const categories = await queryCollection(event, 'usesCategories') const categories = await queryCollection(event, 'usesCategories')
.where('extension', '=', 'md') .where('extension', '=', 'md')
.all() .all()
@@ -16,4 +16,8 @@ export default defineEventHandler(async (event) => {
} }
return uses_by_categories return uses_by_categories
},
{
maxAge: 60 * 60 * 24,
name: 'uses'
}) })