{"id":5357,"date":"2014-01-30T09:30:42","date_gmt":"2014-01-30T00:30:42","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/?p=5357"},"modified":"2014-01-30T09:37:05","modified_gmt":"2014-01-30T00:37:05","slug":"cakephp%e3%81%aeweb-api%e3%83%ac%e3%82%b9%e3%83%9d%e3%83%b3%e3%82%b9%e3%82%92json%e5%9e%8b%e5%bc%8f%e3%81%a7%e8%bf%94%e3%81%99","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/5357","title":{"rendered":"CakePHP\u306eWeb API\u30ec\u30b9\u30dd\u30f3\u30b9\u3092JSON\u578b\u5f0f\u3067\u8fd4\u3059"},"content":{"rendered":"<p>\u696d\u52d9\u3067\u306f\u4f7f\u308f\u306a\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001JSON\u578b\u5f0f\u3067\u8fd4\u3059\u65b9\u6cd5\u3082\u7d39\u4ecb\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<p>1. app\/Config\/routes.php \u3092\u66f8\u304d\u63db\u3048\u308b<\/p>\n<p>\u5148\u982d\u306e\u884c\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\tRouter::parseExtensions('json');\r\n<\/pre>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u4e26\u3079\u308b\u3068\u3001xml \u3068 json \u306e\u4e21\u65b9\u304c\u4f7f\u3048\u307e\u3059\u3002<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\tRouter::parseExtensions('json','xml');\r\n<\/pre>\n<p>2. app\/Controller\/AppController.php \u3092\u66f8\u304d\u63db\u3048\u308b<\/p>\n<p>RequestHandler \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u3053\u3068\u3001\u30da\u30fc\u30b8\u30f3\u30b0\u306e\u6570\u3092\u591a\u3081\u306b\u3068\u3063\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nclass AppController extends Controller {\r\n\tpublic $components = array(&#039;RequestHandler&#039;);\r\n\tpublic $paginate = array( &#039;limit&#039; =&gt; 1000 );\r\n}\r\n<\/pre>\n<p>3. XML \u7528\u306e View \u3092\u4f5c\u6210\u3059\u308b<\/p>\n<p>Controller \u3067 set \u3057\u305f\u5024\u3092 json\/*.ctp \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\u3002\u4f5c\u308b\u30d5\u30a1\u30a4\u30eb\u306f XML \u3068\u540c\u3058\u3067\u3001index.ctp, view.ctp, add.ctp, edit.ctp \u306b\u306a\u308a\u307e\u3059\u3002json \u306b\u5909\u63db\u3059\u308b\u5834\u5408\u306f\u3001json_encode \u95a2\u6570\u3067\u3059\u3002<\/p>\n<p>index.ctp \u306f\u3001\u914d\u5217\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n$items = array(&#039;items&#039;=&gt; array(&#039;item&#039;=&gt; $stores));\r\necho json_encode(array(&#039;response&#039;=&gt;$items),JSON_UNESCAPED_UNICODE);\r\n<\/pre>\n<p>view.ctp, add.ctp, edit.ctp \u306f\u4e00\u3064\u3060\u3051\u306e\u8981\u7d20\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n$item = array(&#039;item&#039;=&gt; $store);\r\necho json_encode(array(&#039;response&#039;=&gt;$item),JSON_UNESCAPED_UNICODE);\r\n<\/pre>\n<p># \u3053\u306e\u90e8\u5206\u3001\u306a\u3093\u3068\u304b\u6c4e\u7528\u5316\u3067\u304d\u306a\u3044\u304b\u3068\u601d\u6848\u4e2d\u3002<br \/>\nJSON_UNESCAPED_UNICODE \u306f\u3001\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u3092 uXXXX \u5f62\u5f0f\u306b\u3057\u306a\u3044\u3001\u3068\u3044\u3046\u8a2d\u5b9a\u3067\u3059\u3002\u3053\u3063\u3061\u306e\u307b\u3046\u304c\u30c7\u30b3\u30fc\u30c9\u3059\u308b\u624b\u9593\u304c\u7701\u3051\u308b\u306e\u3067\u3002<\/p>\n<p>\u25a0\u5b9f\u884c\u3057\u3066\u307f\u308b<\/p>\n<p>\u4e00\u89a7\u306e\u5834\u5408\u306f\u3001http:\/\/localhost:81\/cakephp-2.4.5\/Stores.json \u3001ID\u3092\u6307\u5b9a\u3057\u3066\u95b2\u89a7\u3059\u308b\u5834\u5408\u306f http:\/\/localhost:81\/cakephp-2.4.5\/Stores\/view\/20.json<\/p>\n<p>\u25a0\u304a\u307e\u3051<\/p>\n<p>\u4f3c\u305f\u611f\u3058\u3067\u30b9\u30af\u30ea\u30d7\u30c8\u3082\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n&lt;?php\r\n$views = array( \r\n\tarray(&#039;adjustmentjobs&#039;, &#039;adjustmentjob&#039;),\r\n...\r\n\tarray(&#039;stores&#039;, &#039;store&#039;),\r\n\tarray(&#039;workingsituations&#039;, &#039;workingsituation&#039;),\r\n);\r\n\r\nforeach ( $views as $v ) \r\n{\r\n\t$v0 = $v&#x5B;0];\r\n\t$v1 = $v&#x5B;1];\r\n\t\r\n\t$json0 =&lt;&lt;&lt; END\r\n&lt;?php \r\n$items = array(&#039;items&#039;=&gt; array(&#039;item&#039;=&gt; $$v0));\r\necho json_encode(array(&#039;response&#039;=&gt;$items));\r\n\r\nEND;\r\n\r\n\tmkdir(&amp;quot;view\/$v0\/json&amp;quot;);\r\n\t$path=&amp;quot;view\/$v0\/json\/index.ctp&amp;quot;;\r\n#\tprint &amp;quot;$json0n&amp;quot;;\r\n\tfile_put_contents( $path, $json0 );\r\n\r\n\t$json1 =&lt;&lt;&lt; END\r\n&lt;?php \r\n$item = array(&#039;item&#039;=&gt; $$v1);\r\necho json_encode(array(&#039;response&#039;=&gt;$item));\r\n\r\nEND;\r\n\r\n#\tprint &amp;quot;$json1n&amp;quot;;\r\n\tfile_put_contents( &amp;quot;view\/$v0\/json\/view.ctp&amp;quot;, $json1 );\r\n\tfile_put_contents( &amp;quot;view\/$v0\/json\/add.ctp&amp;quot;, $json1 );\r\n\tfile_put_contents( &amp;quot;view\/$v0\/json\/edit.ctp&amp;quot;, $json1 );\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u696d\u52d9\u3067\u306f\u4f7f\u308f\u306a\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001JSON\u578b\u5f0f\u3067\u8fd4\u3059\u65b9\u6cd5\u3082\u7d39\u4ecb\u3057\u3066\u304a\u304d\u307e\u3059\u3002 1. app\/Config\/routes.php \u3092\u66f8\u304d\u63db\u3048\u308b \u5148\u982d\u306e\u884c\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002 Router::parseExtensions(&#8216;j &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/5357\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[20,60],"tags":[],"class_list":["post-5357","post","type-post","status-publish","format-standard","hentry","category-cakephp","category-wpf"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/5357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=5357"}],"version-history":[{"count":9,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/5357\/revisions"}],"predecessor-version":[{"id":5367,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/5357\/revisions\/5367"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=5357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=5357"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=5357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}