Skip to content

Commit af2dd62

Browse files
update
1 parent c3e9a2c commit af2dd62

File tree

5 files changed

+76
-23
lines changed

5 files changed

+76
-23
lines changed

index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<meta charset="UTF-8" />
55
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7-
<title>Vite + Vue</title>
7+
<title>RECIPE AI</title>
88
</head>
99
<body>
1010
<div id="app"></div>

package-lock.json

+35
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"preview": "vite preview"
1010
},
1111
"dependencies": {
12+
"axios": "^1.6.7",
1213
"openai": "^4.28.0",
1314
"vue": "^3.4.19"
1415
},

src/App.vue

+17-22
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,25 @@
11
<script setup>
2-
import HelloWorld from './components/HelloWorld.vue'
2+
import { ref } from 'vue';
3+
4+
import { getImage } from './features/getImage';
5+
const searchQuery = ref(''); // 検索キーワード変数
6+
const thumbnailUrl = ref(''); // サムネイルURL変数
7+
8+
// サムネイルURLを取得する
9+
const getThumbnailUrl = async () => {
10+
let url = await getImage(searchQuery.value);
11+
console.log(url);
12+
thumbnailUrl.value = url;
13+
};
314
</script>
415

516
<template>
617
<div>
7-
<a href="https://vitejs.dev" target="_blank">
8-
<img src="/vite.svg" class="logo" alt="Vite logo" />
9-
</a>
10-
<a href="https://vuejs.org/" target="_blank">
11-
<img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
12-
</a>
18+
<label>Wikimediaから画像を取得する</label>
19+
<input type="text" v-model="searchQuery" />
20+
<input type="button" value="get image" @click="getThumbnailUrl()" />
21+
<p>result: {{ thumbnailUrl }}</p>
1322
</div>
14-
<HelloWorld msg="Vite + Vue" />
1523
</template>
1624

17-
<style scoped>
18-
.logo {
19-
height: 6em;
20-
padding: 1.5em;
21-
will-change: filter;
22-
transition: filter 300ms;
23-
}
24-
.logo:hover {
25-
filter: drop-shadow(0 0 2em #646cffaa);
26-
}
27-
.logo.vue:hover {
28-
filter: drop-shadow(0 0 2em #42b883aa);
29-
}
30-
</style>
25+
<style scoped></style>

src/features/getImage/index.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import axios from 'axios';
2+
3+
export const getImage = async (query) => {
4+
// query 検索ワード
5+
const result = await axios.get('https://en.wikipedia.org/w/api.php', {
6+
params: {
7+
origin: '*',
8+
action: 'query',
9+
prop: 'pageimages',
10+
gsrsearch: query,
11+
generator: 'search',
12+
pithumbsize: 300,
13+
format: 'json',
14+
},
15+
headers: {
16+
withCredentials: false,
17+
'Access-Control-Allow-Credentials': false,
18+
},
19+
});
20+
21+
return result.data.query;
22+
};

0 commit comments

Comments
 (0)