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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

API

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

Q&A

2回答

2369閲覧

Laravel Web API 開発

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

API

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

0グッド

0クリップ

投稿2017/09/28 08:31

編集2017/09/29 11:06

APIでやりたい事:
異なるAサーバーから勝手に送信してくるデータをリアルタイムで取得し、そのデータをBサーバー
のそれぞれの違うテーブル(test_users_tableとtest_profile_table;)に保存したい、保存する時の注意点は送信してくるデータとこちらにあるテーブルのカラムが違ったりしますが同じカラムだけを保存する。
ログイン認証は行わないですが認証キーが一致していればいいです。

API は全くやった事なくて、どう書けばいいかわからなくて困っています。
誰かが助けてくださいませ!!

statusは下記

response: 200: description: "リクエスト成功" schema: $ref:"#/definition/Success" 400: description:"リクエスト失敗" schema: $ref:"#definitions/RequestError" 401: description:"認証キーが一致しない場合" chema: $ref:"#definitions/AuthorizeError" 500: description:"システムエラー" chema: $ref:"#definitions/ServerError"

###apiを取得するApiInfoController.php

<?php namespace App\Http\Controllers; use App\Api_info; use App\test_users; use App\test_profile; use Illuminate\Http\Request; use Response; class ApiInfoController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // $apply_users = Apply_users::all(); // return Response::json($apply_users); define("ABC_URL","https://example.jp/api/api_info"); $base_url = ABC_URL; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $base_url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl_execの結果を文字列で返す $api_info = Api_info::get(); if ($api_info->isEmpty()){ return Response::json(array('status' => 'NOT FOUND')); }else{ return Response::json(array( 'status' => 'OK', 'data' => $api_info[0] )); } }

###受け取ったデータをそれぞれのテーブルに保存す
test_tableに保存つもりではありますがtest_profile_tableはどうすればいい変わらないです、そもそも、どうやってデータを保存すればいいかわかりません

public function store(Request $request) { $data = $request->input('Api_info'); return test_users::create([ 'email' => $test_users, 'content' => $test_users, 'birth_day' => $test_users, 'gerder' => $test_users, ]); }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/09/29 10:46 編集

t_obaraさん ありがとうございます。 よくわからないです、
guest

回答2

0

$data = $requesr->input('Api_info');

こちらの$requestが誤字していますが問題ありませんか?

また、基本的な話をしておくとLaravelはPSR-4というオートローディングに関する制約を使っています。
ファイル名や、クラス名を制約に従っていないと、クラスが読み込めなかったりしますので守りましょう。

詳しい話までは言いませんが
例えばApp\Api_infoクラスはApp\ApiInfoクラスとする必要があります。また、ファイルの場所はapp/ApiInfo.phpとなります。(UpperCamelCaseでクラス名、ファイル名を指定する必要があります。)

一応、日本語訳してくれている人がいますので、見ると良いでしょう。
PSR-4 autoloader (日本語訳)

投稿2017/09/29 10:58

編集2017/09/29 11:11
fagai

総合スコア2158

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

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

退会済みユーザー

退会済みユーザー

2017/09/29 11:06

fagaiさん ありがとうございます。 こちらは質問する時に入力ミスでした。すみません。
退会済みユーザー

退会済みユーザー

2017/09/29 11:14

fagaiさん わかりました。 ありがとうございます。
guest

0

Laravelでのデータ保存方法に関して質問への追記にt_obaraさんの記載もありますが、Laravelでのデータベースへの保存方法は主に以下3種類あるので参照してください。

SQL文を書く場合
Laravel 5.5 データベース:利用開始

DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);

クエリビルダを使う場合
Laravel 5.5 データベース:クエリビルダ

\DB::table('users')->insert( ['email' => 'john@example.com', 'votes' => 0] );

Eloquent ORMを使う場合
Laravel 5.5 Eloquent:利用の開始

$flight = new Flight; $flight->name = $request->name; $flight->save();

Laravelの使い方自体は、公式にもリンクされているLaracastsに英語ですがライブコーディングのチュートリアル動画があるので利用しているバージョンに注意して適時学習してみてください。
Laracasts

投稿2017/09/29 08:15

aro10

総合スコア4106

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

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

退会済みユーザー

退会済みユーザー

2017/09/29 10:46

aro10さん、 ありがとうございます。 SQL文を書く場合の書きかたで試して見ましたが送信側ではClass 'App\Http\Controllers\Input' not foundとのエラーでます、ちなみに、私の方ではuse Input;を設定します。 よくわかりませんでした。
fagai

2017/09/29 11:22 編集

横からのコメントで申し訳ないのですが、LaravelにはInputファサードはv5.2以降存在しないと思います。。。
退会済みユーザー

退会済みユーザー

2017/09/29 11:26

最初はこちらのサイトでInputを使ってたのを見てやって見ましたhttps://github.com/Selimcse98/Laravel_RestApi ですがよくわからなくて、https://readouble.com/laravel/5.3/ja/queries.html の 下記を使っていますが苦戦しています。 DB::table('users')->insert( ['email' => 'john@example.com', 'votes' => 0] );
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問