質問編集履歴

1

編集・追記依頼への答え

2022/02/25 01:35

投稿

haruatu
haruatu

スコア89

test CHANGED
File without changes
test CHANGED
@@ -2,4 +2,106 @@
2
2
 
3
3
  HerokuのテーブルをCloud9のテーブルと同じようにデータが登録されている状態にしたいのですがどうしたらいいのでしょうか?
4
4
 
5
+ --追記--
6
+ > テーブルには、あるAPIから取得したデータを登録しておいたのですが どのような方法で登録しましたか?
5
7
 
8
+ cloud9のController.phpで以下のようにコードを記述してレコードに登録しました
9
+
10
+ ```ここに言語を入力
11
+ //APIの取得と登録
12
+ public function bookapi()
13
+ {
14
+
15
+
16
+ $client = new \GuzzleHttp\Client();
17
+
18
+ //本のタイトルや筆者名等のAPI
19
+ $url = 'https://iss.ndl.go.jp/api/opensearch?dpid=aozora';
20
+
21
+ $response = $client->request(
22
+ 'GET',
23
+ $url,
24
+ );
25
+
26
+
27
+
28
+ $xml=$response->getBody()->getContents();
29
+
30
+
31
+
32
+ $obj= simplexml_load_string($xml);
33
+
34
+
35
+
36
+ $booklist= json_encode($obj);
37
+
38
+
39
+ $booklist= json_decode($booklist,true)
40
+
41
+
42
+ $books=$booklist['channel']['item'];
43
+
44
+
45
+ //楽天ブックス書籍検索
46
+ $rakutenn_url = 'https://app.rakuten.co.jp/services/api/BooksBook/Search/20170404?applicationId=1070968634966804263';
47
+
48
+
49
+ $rakutenn_response = $client->request(
50
+ 'GET',
51
+ $rakutenn_url,
52
+ );
53
+
54
+
55
+ $rakutenn_json = $rakutenn_response->getBody()->getContents();
56
+
57
+ $rakutenn_booklist= json_decode($rakutenn_json,true);
58
+
59
+ $rakutenn_books = $rakutenn_booklist['Items'];
60
+
61
+ //2つのAPIの情報を一つにまとめる
62
+ $bookbook = [];
63
+
64
+
65
+ for($i=0;$i<count($books);$i++)
66
+ {
67
+ $books[$i] += ["isbn" => null];
68
+ $books[$i] += ["booksGenreId" => null];
69
+ $books[$i] += ["publisherName" => null];
70
+ $books[$i] += ["largeImageUrl" => null];
71
+ array_push($bookbook,$books[$i]);
72
+
73
+ }
74
+
75
+
76
+
77
+ for($i=0;$i<count($rakutenn_books);$i++)
78
+ {
79
+
80
+ $rakutenn_books[$i]['Item'] += ["guid" => null];
81
+ $rakutenn_books[$i]['Item'] += ["link" => null];
82
+ $rakutenn_books[$i]['Item'] += ["category" => null];
83
+ array_push($bookbook,$rakutenn_books[$i]['Item']);
84
+
85
+
86
+ }
87
+
88
+
89
+
90
+ //これが登録
91
+ foreach($bookbook as $item)
92
+ {
93
+ Book::create([
94
+ 'title'=>$item['title'],
95
+ 'link'=>$item['link'],
96
+ 'author'=>$item['author'],
97
+ 'category'=>$item['category'],
98
+ 'guid'=>$item['guid'],
99
+ 'isbn'=>$item['isbn'],
100
+ 'booksGenreId'=>$item['booksGenreId'],
101
+ 'publisherName'=>$item['publisherName'],
102
+ 'largeImageUrl'=>$item['largeImageUrl']]);
103
+
104
+ }
105
+
106
+ }
107
+ ```