Я работаю над своим собственным API. Я прочитал много статей о, но я выгляжу более смущенным, чем раньше.
первый вопрос:
в запросе PUT правильно использовать знак вопроса (?), например:
http://myapi.me/testApi/v5/create/places?address=Five&building=old
или я должен использовать
http://myapi.me/testApi/v5/create/places/address=Five&building=old
если второй правильный путь, как я могу взорвать строку запроса для создания моего оператора вставки? мой код хорошо работает с (?). Но команда curl не хочет вводить запись. Поэтому мне нужно изменить скрипт, чтобы он отражал правильный путь с (/) вместо (?).
Пожалуйста помоги…
мой код:
$body = file_get_contents("php://input");
$content_type = false;
if(isset($_SERVER['CONTENT_TYPE'])) {
$content_type = $_SERVER['CONTENT_TYPE'];
// echo $content_type;
}
switch($content_type) {
//other case...
case "application/x-www-form-urlencoded":
parse_str($body, $postvars);
foreach($postvars as $field => $value) {
$parameters[$field] = $value;
}
$this->format = "html";
break;
default:
// we could parse other supported formats here
break;
}
$this->parameters = $parameters;
private function createRecord(){
if($this->get_request_method() != "PUT"){
$this->response('',406);
}
$table = strtolower(trim(str_replace("/", "", $_REQUEST['rquest'])));
/*
$Q = explode("/", $_SERVER["rquest"]);
print_r(array_values($Q));
echo "\n";
*/
$uri = $this->parameters;
if($uri){
array_shift($uri);
foreach( $uri as $k => $v )
{
$aKeyPholder[]= $k;
$aKey[]= ':'.$k;
}
$aKeyPholder= implode(',', $aKeyPholder);
$aKey= implode(',', $aKey);
$insert = "INSERT INTO '$table' ($aKeyPholder) VALUES ($aKey)";
// echo "insert=$insert\n";
$stmt = $this->db->prepare($insert);
foreach($uri as $k => &$v){
$stmt->bindParam(':'.$k, $v, PDO::PARAM_STR);
}
//$stmt->execute();
if ($stmt->execute()) { echo "Record succesfully created!";}
$this->response($this->json($success),200);
}
else{
$this->response('',204); // If no records "No Content" status
}
}
Задача ещё не решена.
Других решений пока нет …