質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

7回答

5042閲覧

apiで質問したいこと

uverworld101nm

総合スコア172

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2016/07/31 13:24

編集2016/07/31 13:27

apiで質問があります。質問というより悩みです。
apiを使ってサイトを構築しようと思い、apiで得た情報をデータベースに貯めるやり方を考えていましたが、そのやり方は出来ないまたはオススメしないと言われました。なぜなら、apiで得た情報を更新できなくなるからです。ですが、apiから得る情報は膨大な為データベースに貯めたいと思っています。また、検索エンジンはページング処理を設けたいのでデータベースを使いたいんです。
データベースを使えないなら、どうすればいいのですか?
※わかりずらい説明なので補足します。
美味しいうどんが食べたいという参考したいサイトがあります。これはapi+mysqliを使っていますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2016/07/31 13:27

> apiで得た情報を更新できなくなるからです。 ⇒何故ですか?
ikuwow

2016/08/01 01:08

こちらの質問と重複しているようなので、質問内にこの質問へのリンクを貼ると見る人がわかりやすく丁寧かと思います https://teratail.com/questions/42790
guest

回答7

0

オススメしないと言われました

こちらの質問でお勧めしないと回答した者ですw
私の回答が正しいとは言いませんが、回答内容を理解せずにまたこのような同類の質問をされることにガッカリしました。
他の回答者も言っていましたが、まず基礎をしっかり学んでから今目指しているサイトの構築をした方が良いと思います。
本質を理解せずに今わからないことを質問して得られた回答で解決しても、また新たな疑問にぶつかったら質問するの繰り返しになりますよ。

HTMLだけの静的なサイトを作ってみる。
PHPだけを使って簡易処理をしてみる。
PHPとHTMLを組み合わせて動的なサイトを作ってみる。
MySQLなどでデータベースを学んでみる。
PHPでMySQLを操作してみる。
PHP+MySQL+HTMLで動的なサイトを作ってみる。
APIとは何かを学ぶ。

あなたはいつも簡単にAPI、APIと言いますが、どこのサービスのAPIなのか、サービスごとに違うということを理解していますか?
あなたがなぜそこまでしてそのグルメ情報サイトを早急に作りたいのかはわかりませんが、いきなり大規模なものを作ろうとせず、基礎を積み上げていってください。
そうして基礎がしっかりできれば、もっと質の高い質問ができるようになると思います。

投稿2016/08/01 00:48

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr_Roboto

2016/08/01 04:21

もしかしてこの質問者は、AI botなのでは無いかという気がしてきましたw
ttyp03

2016/08/01 04:36

それだ!!w 新手のbotですね。 学習機能があって徐々に良くなるAIなら良いのですけどね。
kaz.Suenaga

2016/08/01 05:28

私は https://teratail.com/questions/40043 で言いつくしたので冷やかしです^^; トレーニングに重要な要素の1つは反復ですよね。 実は鍛えられているのは回答者側なのかも、と思って質問者さんとの対話ではなく未来のこのスレッドを見た初学者さん向けに、いかに伝わる回答を書くか、と思って反復トレーニングをするといいのかもしれません(棒
ttyp03

2016/08/01 05:36

良いこと言いますな、と思ったら、最後(棒、ですかw いやでも、ホント結構な人数の方があらゆる手を尽くして回答してくださっているのに伝わらない。 もっと別の切り口で回答しないとダメなのかもしれません。 もういっそのことぐるなびAPIを使った口コミサイトをオープンソースで作って、「これ見ろ」の方が早い気がしてきました。
kaz.Suenaga

2016/08/01 05:45

中身の意味を理解せずにするコピペの組み合わせは「自分で作った」じゃないんですけどね。 応用できないコピペはただの盗用ですよね。
退会済みユーザー

退会済みユーザー

2016/08/01 11:17

ソースコードを書いて見せても、意味がないらしい…
takaw

2016/08/01 12:19

みんなちょっと楽しそうにも見えるんですがw 「モスバーガーのきれいな食べ方」ぐらい難解です。
Mr_Roboto

2016/08/01 12:31

出来の悪い子ほど可愛いってやつかw でも bot じゃなぁ
退会済みユーザー

退会済みユーザー

2016/08/01 12:37

botならもう少しマシだと期待するんだけどなあ…
takaw

2016/08/01 12:39

ブラックリストどころか、逆に気になってフォローしてしまいました。 はじめてのフォローです。
Mr_Roboto

2016/08/01 12:42

暖簾に腕押しってやつですね 馬耳東風も通じないから諺で言っても意味ないか
kaz.Suenaga

2016/08/01 13:06

というか、この質問者さん見ていると、ある種の危機感というか焦燥感を感じるんですよね。 質問者さん自身がどうのというよりも、こんな技術への接し方が増えちゃいけない、というか。
guest

0

以下のソースを書くために参照したページ
http://api.gnavi.co.jp/api/manual/
http://api.gnavi.co.jp/api/manual/prefmaster/
http://api.gnavi.co.jp/api/manual/restsearch/

上記のページを参照するだけで以下の機能は実装可能。

設置さえすれば動く。以上。

php

1<?php 2 3/** 4 * global_functions.php 5 * 6 * @since 2016/08/01 7 */ 8 9/** 10 * エスケープ 11 * @param string $string 12 * @return string 13 */ 14function h($string) 15{ 16 return htmlspecialchars($string, ENT_QUOTES, 'utf-8'); 17} 18 19/** 20 * ページネーション 21 * @param int $page 22 * @param int $total 23 * @return string 24 */ 25function pagination($page, $total) 26{ 27 $delta = 3; 28 if ($total < 1) { 29 return; 30 } 31 $query = (is_array(filter_input_array(INPUT_GET))) ? 32 filter_input_array(INPUT_GET) : []; 33 if (isset($query['offset_page'])) { 34 unset($query['offset_page']); 35 } 36 $querystring = http_build_query($query); 37 $limit = 10; 38 $placeholder = "<span%s><a href=\"?offset_page=%d&%s\">%s</a></span> "; 39 40 // 最大ページ数 41 $maxPage = ceil($total / $limit); 42 43 $min = max([$page - $delta, 1]); 44 $max = min([$page + $delta, $maxPage]); 45 46 $html = ''; 47 if ($page > 1) { 48 $html .= sprintf($placeholder, '', 1, $querystring, '&laquo;'); 49 $html .= sprintf($placeholder, '', $page, $querystring, '前へ'); 50 } 51 for ($i = $max - 6; $i < $min + 7; $i++) { 52 if ($i > -1 && $i < $maxPage) { 53 $html .= sprintf($placeholder 54 , ($i == $page) ? ' class="active"' : '' 55 , $i + 1 56 , $querystring 57 , $i + 1 58 ); 59 } 60 } 61 if ($page < $maxPage) { 62 $html .= sprintf($placeholder, '', $page + 1, $querystring, '次へ'); 63 $html .= sprintf($placeholder, '', $maxPage, $querystring, '&raquo;'); 64 } 65 return $html; 66}

php

1<?php 2 3/** 4 * Gnavi.class.php 5 * 6 * @since 2016/08/01 7 */ 8class Gnavi 9{ 10 11 /** 12 * アクセスキー 13 * @var string 14 */ 15 private static $token = 'アクセスキー'; 16 17 /** 18 * 都道府県リストを取得 19 * @return object 20 */ 21 public static function getPref() 22 { 23 $uri = "http://api.gnavi.co.jp/master/PrefSearchAPI/20150630/"; 24 $acckey = self::$token; 25 $format = "json"; 26 27 $url = sprintf("%s?format=%s&keyid=%s", $uri, $format, $acckey); 28 $json = file_get_contents($url); 29 $obj = json_decode($json); 30 return $obj; 31 } 32 33 /** 34 * レストラン検索 35 * @return object 36 */ 37 public static function getRestaurants() 38 { 39 $uri = "http://api.gnavi.co.jp/RestSearchAPI/20150630/"; 40 $acckey = self::$token; 41 $format = "json"; 42 43 $get = [ 44 'format' => $format 45 , 'keyid' => $acckey 46 , 'hit_per_page' => 10 47 ]; 48 if (!is_null(filter_input_array(INPUT_GET))) { 49 $get += filter_input_array(INPUT_GET); 50 } 51 $url = sprintf("%s?%s", $uri, http_build_query($get)); 52 53 $json = file_get_contents($url); 54 $obj = json_decode($json); 55 return $obj; 56 } 57 58}

php

1<?php 2/** 3 * index.php 4 * 5 * @since 2016/08/01 6 */ 7require_once './global_functions.php'; 8require_once './Gnavi.class.php'; 9 10// 都道府県取得 11$prefs = Gnavi::getPref(); 12 13// レストラン検索 14$restaurants = Gnavi::getRestaurants(); 15?> 16<!DOCTYPE HTML> 17<html lang="ja"> 18 <head> 19 <meta charset="UTF-8"> 20 <title>ぐるなびAPIテスト(アホでも設置するだけで動く)</title> 21 </head> 22 <body> 23 <form action="" method="get"> 24 <p> 25 <label for="pref">都道府県</label> 26 <select name="pref" id="pref"> 27 <option value="">都道府県</option> 28 <?php foreach ($prefs->pref as $pref) : ?> 29 <?php if ($pref->pref_code == filter_input(INPUT_GET, 'pref')): ?> 30 <option value="<?= h($pref->pref_code); ?>" selected="selected"><?= h($pref->pref_name); ?></option> 31 <?php else: ?> 32 <option value="<?= h($pref->pref_code); ?>"><?= h($pref->pref_name); ?></option> 33 <?php endif; ?> 34 <?php endforeach; ?> 35 </select> 36 </p> 37 <p> 38 <label for="freeword">フリーワード</label> 39 <input type="text" name="freeword" id="freeword" value="<?= h(filter_input(INPUT_GET, 'freeword')); ?>" /> 40 </p> 41 <p> 42 <button type="submit">検索</button> 43 </p> 44 </form> 45 46 <div> 47 48 <table> 49 <thead> 50 <tr> 51 <th>id</th> 52 <th>name</th> 53 <th>category</th> 54 <th>address</th> 55 </tr> 56 </thead> 57 <tbody> 58 <?php foreach ($restaurants->rest as $rest) : ?> 59 <tr> 60 <td><?= h($rest->id); ?></td> 61 <td> 62 <a href="<?= h($rest->url); ?>"><?= h($rest->name); ?></a> 63 </td> 64 <td><?= h($rest->category); ?></td> 65 <td><?= h($rest->address); ?></td> 66 </tr> 67 <?php endforeach; ?> 68 </tbody> 69 </table> 70 71 <div class="pagination"> 72 <?= pagination($restaurants->page_offset, $restaurants->total_hit_count); ?> 73 </div> 74 </div> 75 </body> 76</html> 77

投稿2016/07/31 16:14

編集2016/08/01 07:32
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uverworld101nm

2016/08/01 03:27

ご回答ありがとうございます。 こなコードだと、わざわざデータベースを使わなくてもいいんですね?
退会済みユーザー

退会済みユーザー

2016/08/01 03:44

相変わらず、わかってませんね。 コードの問題ではなく設計の問題、ひいてはAPIの仕様の問題です。
uverworld101nm

2016/08/01 04:59

では、僕が実装したい機能はこれでできるんですね?
cateye

2016/08/01 05:31

>実装したい機能はこれでできるんですね?・・・出来るかどうかは自分で判断しましょう 。 Kosuke_Shibuyaさんのコードを説明できますか?
退会済みユーザー

退会済みユーザー

2016/08/01 07:04 編集

@uverworld101nm さん あなたが実装したい機能を全て説明を尽くしてくれれば、できるかできないかの返事は可能です。 これまでの経緯を見る限り、あなたに理解できるとも思ってません。 サーチエンジンから検索で来た人の参考になればと思って書いている程度のものです。
uverworld101nm

2016/08/01 10:13

ご回答ありがとうございます。 本当にありがとうございました。
退会済みユーザー

退会済みユーザー

2016/08/01 11:14

あ〜マジでブラックリスト機能欲しい。
退会済みユーザー

退会済みユーザー

2016/08/01 12:23

結局、ソースコードを書いてあげても、理解できないということでしょ? だから、皆さん基本から勉強しろっていうのですよ。いい加減そこは理解しないといけませんね。
uverworld101nm

2016/08/03 09:48

素朴な質問ですが、Gnaviとglobal_functionsのphpコードには?>がないのですが・・・
退会済みユーザー

退会済みユーザー

2016/08/03 09:51

それがどうかしましたか?
uverworld101nm

2016/08/03 10:04

いや、気になっただけなんですが
uverworld101nm

2016/08/03 10:05

あとindex.phpとありますが、これはindex.phpを書き換えていいんですか?
退会済みユーザー

退会済みユーザー

2016/08/03 10:07

書き換える?って何と何を?
退会済みユーザー

退会済みユーザー

2016/08/03 10:08

ファイル名もコメントにあるままだし、そのまま設置するだけです。
uverworld101nm

2016/08/03 10:12

index.phpはもともとwordpressのテーマに入っているので、このindex.phpにあなたが提示したindex.phpのコードを挿入するのかなと思っただけです。
退会済みユーザー

退会済みユーザー

2016/08/03 10:15

自分の質問文をちゃんと読み返しましょう。「wordpressに組み込む」なんてこと書いてません。従って、「余計なことするな」 提示されたソースをそのまま設置しなさい。
退会済みユーザー

退会済みユーザー

2016/08/03 10:16

試してから質問してください。あんたのサポートセンターでもないし、上司でもないし、ましてや友達でもありません。
uverworld101nm

2016/08/03 10:25

私もあなたのことをサポートセンターでも、上司でも、ましてや友達だとも思っていません。
退会済みユーザー

退会済みユーザー

2016/08/03 10:52

そういう意識があるなら、まずは手を動かしましょう。
guest

0

ベストアンサー

たしかにAPIだけで可能です。
しかし、あなたはその作るサイトに口コミや、コメントフォームなどAPIにないことを入れようとしていますね
それにはDBがいるまた会員登録するのならそれを保存するDBがいる

後結局外側が無いから回答者側誰もイメージできないと思う
先に内側を作るより外側を作ってしまう方が作りやすくなっていくと思います。

美味しいうどんとかいうサイトは置いといてあなたが作りたいのを作っていった方がいいです

※いつのまにかぐるなびのAPIを扱えるようになってしまった。新しい技術を学ばせて頂きありがとうございました。

投稿2016/08/01 05:31

date

総合スコア1820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

date

2016/08/01 06:22

回答に不備があれば訂正しますが、 私事ですが442ky119さんが質問しているときからもう何度かぐるなびAPIもそれから美味しいうどんとかいうサイトも見てしまっている 既に2ヶ月くらいの経験となった、teratailはその点はいいサイトだと思います。
date

2016/08/01 07:39

それでは真面目においしいうどんについて http://umai-udon.info/shop/ に記載があるようにYahoo!ロコというのを利用しているようですね http://chiebukuro.yahoo.co.jp/my/myspace_ansdetail.php?writer=woodnotexx の記載にあるような作成方法にしているようだ http://umai-udon.info/contact/ で直接問い合わせる(答えてくれるかは分からんが) またサイトを流用したいとか考えていたら美味しいうどんの禁止事項に触れないよう
guest

0

ぐるなびAPIで質問されていた方ですよね?
突然APIときても初見の方は何の事かわからないと思います。

apiから得る情報は膨大な為データベースに貯めたいと思っています。

なぜ手元におきたいのでしょう?
データをすべて集めて自前でDBとシステムを構築するまでもなく、このAPI自体がぐるなびのDBに対するアクセス窓口です。
SQLではなく、APIのパラメータを使ってぐるなびのデータベースにアクセスしていると考えましょう。
当然自前で設計したDBにSQLでアクセスするほどの自由度はありませんが、それは仕方の無い事です。
ユーザにできる事は、(窓口があるなら)せいぜい開発者に必要な機能の追加を要望することくらいです。

検索エンジンはページング処理を設けたい

ページを遷移する都度APIにそのページで表示するデータを要求すればよろしいかと

apiで得た情報を更新できなくなるからです。

確か膨大なデータ全てをDBに格納しようとしていたと思います。
データを得るためには時間が掛かると思いますが、保存したデータが利用時点で最新だとどうやって保障できるでしょう?
毎時全データを得て更新し続けるのでしょうか?
データ転送やそのための処理リソースは有限で費用が掛かりますし、サービス提供側の持ち出しです。
短時間に大量のデータ要求を繰り返し延々と行うと、それは迷惑アクセスと受け取られるでしょう。
というわけで全て保存しようという仕様が情報を更新できない原因です。

サービス提供側は、間違った店舗データが掲載されてしまった場合、店舗(ユーザ)側のアクションで即修正できるようにしているはずです。
しかし、あなたがDBに格納したデータはどうでしょうか?
仮に店舗の営業に害を与えるようなデータが誤って掲載されていた場合、あなたのDBのデータが更新されないと何時までもそれがあなたのサイト(つまりインターネット上)に表示されてしまいます。
ぐるなびは店舗側から苦情をもらい損害賠償を請求されるかも知れません。

これはapi+mysqliを使っていますか?

外から見ただけでは正確な事はわかりませんよ。
そのサイトの開発者本人に確認するしかないと思います。

投稿2016/07/31 14:28

hirohiro

総合スコア2068

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uverworld101nm

2016/07/31 14:45

回答ありがとうございます。 データベースに貯める理由は幾つかあって、一つはぐるなびapiを使って検索サイトを作りたいからです。 例えば、カレーと検索したらカレーのお店が表示される仕組みが作りたいです。
hirohiro

2016/07/31 15:04 編集

ならば、「カレー」で検索するようパラメータを設定してAPIにアクセスすれば良いと思います 例えばテストツールで次のように実行すると「pref=PREF13&freeword=カレー」 pref13(どこの都道府県でしょう?東京かな)のカレーのワードを含む(恐らく店舗名やdiscriptionにだと思いますが、詳しいところはマニュアルを見るかぐるなびに聞いてみてください)のデータが1-20件まで取得されます。同じ条件で続きがほしければ、offsetを変更して再度アクセスすれば良いと思います 恐らく検討している殆どのパターンの検索は、APIパラメータの調整で対応できると思います。
uverworld101nm

2016/08/01 05:00

ご回答ありがとうございます。 つまり、データベースを用いずに僕がしたいことが実装できるんですね?
hirohiro

2016/08/01 05:07 編集

上記のapiアクセスでしたいことは出来ていましたか? uverworld101nmさんしたい事を完璧に実現できるかどうかは解りませんが、freewordにカレーを設定して茨城の店を検索することはできるみたいですよ。
uverworld101nm

2016/08/01 05:17 編集

出来ました。 しかし、僕がしたいのは例えば、神保町カレーと検索すると神保町カレーでヒットした情報をサイトに表示したいんです。 つまり、検索サイトを作りたいです。だから、データベースを用いようと考えていました。
hirohiro

2016/08/01 05:22 編集

> 神保町カレーと検索すると神保町カレーでヒットした情報をサイトに表示したいんです。 得られた情報(XMLで受け取っているようですが)を解析してご自身のサイトのHTML上にechoして表示したのではだめなのでしょうか?
uverworld101nm

2016/08/01 05:29

それはできているのですが、ユーザーが検索しやすい検索サイトを作りたいです。 データベースを使わずに検索機能をもうけることは可能ですか?
hirohiro

2016/08/01 05:35 編集

ユーザが検索フォームで「場所:神保町、種類:カレー」と選択して検索を実行したら、それでAPIに問い合わせて得られた情報をHTMLにパースしてそのまま表示すれば良いのでは?これでは出来た事にならないですか? DBに溜めていた場合でも結局やることは同じでAPIに検索を任せるか、DBから検索するかの違いしか無いと思うのですけども。
uverworld101nm

2016/08/01 05:41

ご回答ありがとうございます。 悩みが解決して助かりました。 すみません、データベースで躓いてわからなくなっていたところでした。
guest

0

あなたはニュースや雑誌を見ますか?
大抵の人は最新データを得たいですよね、ニュースや雑誌は発売前の時点で最新のデータを使いますよね。
では、一か月後に同じニュースや雑誌を見なおしたときにこれらのデータは古い状態ですよね。

ニュースや雑誌がデータベースで、最新のデータをそろえることがWebAPIです。

保存した時点での最新データを表示するだけならいいそれでいいですが、いつ保存したかわからないデータをユーザーは見たいでしょうか?
そんなわけで、口コミサイトを作るのにWebAPIから取得したデータを保存するのはよくないといわれたんですよ。

投稿2016/07/31 13:42

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest1213

2016/07/31 14:20

補足させてください。 APIの提供者側からしても最新のデータを使ってほしいはずです。理由は他にもあるでしょうが、多くのものは利用規約で「キャッシュはいつまで」というのが定められています。 厳しいところだと例えばAmazonが24時間まで、かつ1時間以上古いキャッシュデータに関しては「いついつ取得したもの」と明記しなければならなかったはずです。さらに画像データに関してはバイナリを保存してはならず、URLでAmazon側のデータを参照しなければならなかったはずです。 ぐるなびはデータのキャッシュは1か月までだったような記憶があります。詳しくは利用規約を精読してください。 さらにDBに貯めたデータを他の目的に使うような「再利用」にも制限がかかっている場合が多いです。 外部APIというのは、いかにして利用規約の範囲内で使うかが非常に難しいのです。 規約関連でわからないことはAPIを提供している企業なりに問い合わせるのが一番です。 そしてそのあたりが判明したなら、その制約の中でできることを考え、その実装に向けて技術的な問題を解決していくべきだと思います。
uverworld101nm

2016/07/31 14:47

ご回答ありがとうございます。 では、データベースを使わずにそのまま使えばいいのですか? 実はぐるなびapiから取得した情報を複数のページに渡って表示したいんです。
uverworld101nm

2016/07/31 14:48

また検索サイトにしたいので、mysqliを使いたいんです。
yona

2016/07/31 15:05

検索はぐるなびAPIで実装されています、あなたがやることはそのデータにアクセスすることです。 ほかにデータ(コメントなど)を保存したいなら店のIDに紐づけてデータベースに入れる必要がありますね。
uverworld101nm

2016/08/01 05:00

ご回答ありがとうございます。 つまり、データベースを用いずに僕がしたいことが実装できるんですね?
yona

2016/08/01 05:46

なにがつまりかわかりませんが、実装できます。
guest

0

データベースを使って構いません。
ユーザーからアクセスがあるたびに API を叩いてもいいですが、人気サイトになるとそれでは反応が遅くなるのでキャッシュが必要でしょう。相手のサーバーが落ちていたりすることもあります。
そのようなデータをキャッシュするならデータベースが最善だと思います。

特定のサイトのことはソースを見るかその管理者に聞いてください。
データベースを扱えるスキルがあるならソースを見ればわかるはずです。

投稿2016/07/31 13:41

編集2016/07/31 13:48
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uverworld101nm

2016/08/01 05:01

ご回答ありがとうございます。 データベースを用いずにそのままapiを使えばいいんですね?
Zuishin

2016/08/01 05:04

何文字くらい読めますか? この程度の長さなら全部読めます?
uverworld101nm

2016/08/01 05:06

すみません、何文字くらい読めるとはどういう意味ですか?
Zuishin

2016/08/01 05:10

文字数ではなく内容が難しすぎましたか?
uverworld101nm

2016/08/01 05:31

いいえ、ただデータベースは使えないと指摘があったので悩んでいるところです。 今聞きたい事があります。 データベースを用いずに検索機能やページング処理を設けることは可能ですか?
Zuishin

2016/08/01 06:17

なぜ使えないのかその理由はお読みになりましたか? 使えないのはデータベースではありません。 あなたには使いこなせないということです。
Zuishin

2016/08/01 06:22

基本となるデータに新たに付加するものがあるからこそ役に立つのでしょう? そのためにはデータベースは有用です。 使わないことをお勧めされているのは、「単なるブリッジで我慢しとけ」ということです。私は口が悪いので、悪い言葉で言いますが。 使いこなせないということで言うなら、データベースを使わなければできるかというと、それも恐らくは無理でしょう。 作らないことをお勧めします。
guest

0

技術について言いたいことは他の方が言い尽くしているので、ルールについてだけ。

APIから取得した情報をデータベースに保持してよいかは各APIの規約によります。
たとえば「ぐるなびWebサービス利用規約」には

APIユーザーは、本APIを通して取得した情報を、外部からはアクセスできない社内システム等の環境で利用することはできません。

(中略)

APIユーザーは、弊社の知的財産の全部または一部を、販売、編集、加工、翻案、翻訳その他の変更、再配信、サブライセンスまたは譲渡することはできません。

などの条項があります。
あなたがやろうとしていることは規約違反になりませんか?

[参考] ぐるなびWebサービス利用規約

投稿2016/08/01 03:02

dupont_kedama

総合スコア925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uverworld101nm

2016/08/01 04:57

ご回答ありがとうございます。 では、データベースを使わずにそのままで利用しなくてはいけないんですね?
dupont_kedama

2016/08/01 05:21

あなたの質問文には「ぐるなびAPI」とは書いていませんし、私は「ぐるなびの場合は」という例示をしたまでです。 あなたが利用しようとしているサービスの規約をよく読み、規約違反にならないようご自分で設計をお考えください。 ちなみに質問文にある「美味いうどんが食べたい」は「ぐるなびAPI」ではないサービスを使っているようです。(サイト内を探せばすぐにわかります。) 以降同様のレベルのコメントいただいても回答いたしかねます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問