使用しているツール: Slim Framework & RedBeanPHP
私はこの記事を勉強しています: http://www.ibm.com/developerworks/library/x-slim-rest/と特にこの方法:
// handle POST requests to /articles
$app->post('/articles', function () use ($app)
{
try
{ // get and decode JSON request body
$request = $app->request();
$body = $request->getBody();
$input = json_decode($body);
// store article record
$article = R::dispense('articles');
$article->title = (string)$input->title;
$article->url = (string)$input->url;
$article->date = (string)$input->date;
$id = R::store($article);
// return JSON-encoded response body
$app->response()->header('Content-Type', 'application/json');
echo json_encode(R::exportAll($article));
} catch (Exception $e) {
$app->response()->status(400);
$app->response()->header('X-Status-Reason', $e->getMessage());
}
});
アプリケーションを実行したり、好きなように更新/入力したりしましたが、記事のようにコンソールに POST のレポートが表示されませんか?
私は見ることを期待しています: http://www.ibm.com/developerworks/library/x-slim-rest/#f5
私のコンソールで。
代わりに、http: //acookson.org/?attachment_id=1221を取得します。
GETリクエストメソッドですよね?では、作成者はどのようにしてブラウザーをだまして、HTML フォームを使用せずに POST 要求として報告させるのでしょうか?
この行で、私はあなたが言うのを聞きます:
// get and decode JSON request body
$request = $app->request();
$body = $request->getBody();
$input = json_decode($body);
まあ、私は記事を好きなようにコピーしていますが、データベースには何も追加されていません。
CURLで同様のことを達成できます
$ curl -i -X POST -H 'Content-Type: application/json' -d '{"id": "3", "title": "Programming with C++", "url":"http:\/\/www.google.com\/programming\/C++","date":"2013-01-10"}' http://example.localhost/articles
HTTP/1.1 200 OK
Date: Mon, 01 Apr 2013 08:52:50 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.4.6-1ubuntu1.2
Content-Length: 116
Content-Type: application/json
POST
[{"id":3,"title":"Programming with C++","url":"http:\/\/www.google.com\/programming\/C++","date":"2013-01-10"}]
行3がデータベースに追加されました:
mysql> select * from articles\G;
*************************** 1. row ***************************
id: 1
title: Search and integrate Google+ activity streams with PHP applications
url: http://www.ibm.com/developerworks/xml/library/x-googleplusphp/index.html
date: 2012-07-10
*************************** 2. row ***************************
id: 2
title: Getting Started with Zend Server CE
url: http://devzone.zend.com/1389/getting-started-with-zend-server-ce/
date: 2009-03-02
*************************** 3. row ***************************
id: 3
title: Programming with C++
url: http://www.google.com/programming/C++
date: 2013-01-10
3 rows in set (0.00 sec)
私は何が欠けていますか?