• Dev
  • 20th
  • Tips
  • English
  • Favorites
  • Others
temp

a deck for makers but poor

REST

2017/11/22 by IKIX_temp

 今日はRESTについて調べた.直訳すると「表現状態移動」.画面間をXMLやJSONやCSVなど特定のデータ形式でデータを受け渡して移動できる.現在の開発では,データの受け渡しといえばGETとPOSTとセッションしか知らないので,Input::post(‘name’)を繁用しているが,RESTfulな実装を行えば,Input::json(‘name’)でデータが取れてしまう.
 たとえばJSONでデータを受け渡すことを考えてみる.jQueryのAJAXを使う方法をとってみる.

  var data = {
    name: “FuelPHPデータ”
  };

  $.ajax({
    type : ‘post’,
    url : ‘/json/post.json’,
    data: JSON.stringify(data),
    contentType: ‘application/json’,
    dataType: ‘json’,
    })
    .done(function(json_data) {   
      return;
    })
    .fail(function() {
      alert(‘Server Error. Please try again later.’);
    })
    .always(function() {
    })
  });

 すると,次のデータが返ってくる.

  {“name”:”FuelPHPデータ”}

 あとは Input::json(‘name’) と書けば, FuelPHPデータ が取れてしまう.ここでRESTコントローラを使う.

 class Controller_Api extends Controller_Rest
 {
  public function get_list()
  {
    return $this->response(array(
      ’name’ => Input::get(‘name’),
      ’baz’ => array(1, apple, pen),
      ’empty’ => null
    ));
  }
 }

 http://localhost/api/list.json?name=FuelPHP にアクセスすると,次が返ってくる.

 {
  ”name”:”FuelPHP”,
  ”baz”:[1,apple,pen],
  ”empty”:null
 }

 肝心なのは使いみちであるが,
 class Controller_RestForm extends Controller_Rest
 {
  public function get_list()
  {
    return $this->response(array(
      ’name’ => Input::get(‘name’),
      ’user’ => Input::get(‘user’),
      ’pass’ => Input::get(‘pass’),
      ’nick’ => Input::get(‘nick’),
    ));
  }
 }

 とすれば
http://localhost/api/list.json
. ?name=FuelPHP&user=david
. &pass=sixstar$nick=deve

 {
  ”name”:”FuelPHP”,
  ”user”:”david”,
  ”pass”:”sixstar”,
  ”nick”:”deve”,
 }

 などとなれるのだから,URIが決まっている時はデータの受け渡しに使えそう.また,CSV出力したい時にも使える.これは便利な技術だということで覚えておいて損はないだろう.

カテゴリー: Tips タグ: Ajax, PHP
← 反省2017
遠春 →

Search

Tags

20th century Angular AP ASD Git Google HTML5 iOS IoT JS LW MCSA MS MVC NFT Office PCインストラクター PHP Processing Python SQL Town UNIQLO UX Web Windows WP YouTube アルゴリズム グラフ理論 ゲノム栄養学 サーバ管理 デザイン デバイス ミニマリズム モバイル 信仰 声楽 情報建築 技能士 投資 政治 文学 日曜数学 本

Archive

Copyright © 2025 temp.

Omega WordPress Theme by ThemeHall