From 5df7b1f878cfdfc2752735e1469870dfc05414f3 Mon Sep 17 00:00:00 2001 From: hwakabh Date: Sun, 3 Aug 2025 23:06:50 +0900 Subject: [PATCH 1/3] feat: integrated API and UI with Tumblr API. --- api-server/routes/api.js | 2 + api-server/routes/logues.js | 38 +++++++++++++++ web-frontend/src/pages/Blog.vue | 83 +++++++++------------------------ 3 files changed, 63 insertions(+), 60 deletions(-) create mode 100644 api-server/routes/logues.js diff --git a/api-server/routes/api.js b/api-server/routes/api.js index cc72f181..7ac51fc0 100644 --- a/api-server/routes/api.js +++ b/api-server/routes/api.js @@ -5,6 +5,7 @@ const aboutRouter = require('./about'); const cvRouter = require('./cv'); const worksRouter = require('./works'); const contactRouter = require('./contact'); +const postsRouter = require('./logues'); const URL_PREFIX = '/api/v1'; @@ -12,5 +13,6 @@ router.use(URL_PREFIX + '/about', aboutRouter); router.use(URL_PREFIX + '/cv', cvRouter); router.use(URL_PREFIX + '/works', worksRouter); router.use(URL_PREFIX + '/contact', contactRouter); +router.use(URL_PREFIX + '/posts', postsRouter); module.exports = router; diff --git a/api-server/routes/logues.js b/api-server/routes/logues.js new file mode 100644 index 00000000..26f087da --- /dev/null +++ b/api-server/routes/logues.js @@ -0,0 +1,38 @@ +const express = require('express'); +const router = express.Router(); +const axios = require('axios'); + +router.get('/', async (req, res, next) => { + // #swagger.tags = ['Logues'] + // #swagger.summary = 'returns dynamic content for the blog page' + // #swagger.description = '/api/v1/logues' + + const CONSUMER_KEY = process.env.TUMBLR_CONSUMER_KEY; + const url = 'https://api.tumblr.com/v2/blog/hwakabh.tumblr.com/posts?api_key=' + CONSUMER_KEY; + const respPosts = await axios.get(url) + .then(response => { + return response.data.response.posts + }) + .catch(error => { + console.log(error); + }) + + const posts = []; + respPosts.forEach(p => { + posts.push({ + date: p.date, + body: p.body + }) + }); + + console.log(posts); + + res.header('Content-Type', 'application/json; charset=utf-8'); + res.json({ + "path": req.originalUrl, + "content": posts + }); + +}); + +module.exports = router; diff --git a/web-frontend/src/pages/Blog.vue b/web-frontend/src/pages/Blog.vue index 66a6b3bc..901d21a3 100644 --- a/web-frontend/src/pages/Blog.vue +++ b/web-frontend/src/pages/Blog.vue @@ -1,67 +1,30 @@ -