我在这里完成了这个Laravel 4 Restfull教程 - http://code.tutsplus.com/tutorials/laravel-4-a-start-at-a-restful-api-updated--net-29785
我想要做的是测试浏览器URL中的Restful链接:
curl命令:
$ curl -i --user firstuser:first_password -d 'url=hxxp://google.com&description=A Search Engine' www.lrvlapp.com/api/v1/url
运行正常,并按预期返回json:
{"error":false,"message":"URL created"}
浏览器网址:我试试这个:
www.lrvlapp.com/api/v1/url?url=hxxp://google.com&description=A Search Engine
没有给出任何错误或任何内容,也没有将数据库插入数据库。
这是UrlController
类UrlController extends \ BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return 'Hello, API';
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
$url = new Url;
$url->url = Request::get('url');
$url->description = Request::get('description');
$url->user_id = Auth::user()->id;
// Validation and Filtering is sorely needed!!
// Seriously, I'm a bad person for leaving that out.
$url->save();
return Response::json(array(
'error' => false,
'message' => 'URL created')
);
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}
www.lrvlapp.com实际上是我通过hosts文件和apache Virtual Host设置的虚拟主机
实际位置位于:c:\ xampp \ htdocs \ lrvlapp \ public
谢谢你的回答
答案 0 :(得分:1)
当您通过浏览器请求时,您发出的是GET请求,而该请求又会调用索引方法。 您需要提交POST请求以保存网址。然后它将调用store方法。这是节约资源的标准方式。
您可以在文档中获得更多说明:http://laravel.com/docs/controllers#resource-controllers
修改强>: 如果你想在这种情况下使用jquery进行ajax调用(POST),你可以调用如下:
$.ajax({
type: 'POST',
url: 'www.lrvlapp.com/api/v1/url',
data: { url: "http://google.com", description: "A Search Engine" },
dataType: 'json',
success: function(data) {
<do your actions, for example show some message>
$('#div-id').html(data);
},
error: function(jqXHR, textStatus, errorThrown) {
$('#div-id').html('Error: , ' + textStatus + ', ' + errorThrown);
}
});