0

サイトの API を作成するように ArrestDB を構成しようとしています。
https://github.com/alixaxel/ArrestDB

インストールで説明されているように、$dsn を次のように変更する必要があります: MySQL:

$dsn = 'mysql://[user[:pass]@]host[:port]/db/;

現在、私は持っています

$dsn = 'mysql://user:password@localhost/database/';

上記のブラケットで試してみましたが、503 サービスを利用できないというエラーが発生しました。ブラケットを削除すると、次のエラーが発生します。

{
    "error": {
        "code": 400,
        "status": "Bad Request"
    }
}

私が間違っていることを知っていますか?私にはすべてが正しく見えます

編集:

以下のアドバイスを試したところ、API が返されました。

array(28) {        
  ["REDIRECT_STATUS"]=> string(3) "200" 
  ["HTTP_HOST"]=> string(16) "api.shopsavr.com" 
  ["HTTP_CONNECTION"]=> string(10) "keep-alive" 
  ["HTTP_ACCEPT"]=> string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" 
  ["HTTP_USER_AGENT"]=> string(109) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" 
  ["HTTP_ACCEPT_ENCODING"]=> string(17) "gzip,deflate,sdch" 
  ["HTTP_ACCEPT_LANGUAGE"]=> string(14) "en-US,en;q=0.8" 
  ["PATH"]=> string(209) "/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/courier-imap/sbin:/usr/lib/courier-imap/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin" 
  ["SERVER_SIGNATURE"]=> string(0) "" 
  ["SERVER_SOFTWARE"]=> string(136) "Apache/2.2.25 (Unix) mod_ssl/2.2.25 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.4.20" 
  ["SERVER_NAME"]=> string(16) "api.shopsavr.com" 
  ["SERVER_ADDR"]=> string(11) "50.28.7.250" 
  ["SERVER_PORT"]=> string(2) "80" 
  ["REMOTE_ADDR"]=> string(12) "67.247.5.220" 
  ["DOCUMENT_ROOT"]=> string(30) "/home/shopsavr/public_html/api" 
  ["SERVER_ADMIN"]=> string(26) "webmaster@api.shopsavr.com" 
  ["SCRIPT_FILENAME"]=> string(40) "/home/shopsavr/public_html/api/index.php" 
  ["REMOTE_PORT"]=> string(5) "58487" 
  ["REDIRECT_URL"]=> string(8) "/PRODUCT" 
  ["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" 
  ["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" 
  ["REQUEST_METHOD"]=> string(3) "GET" 
  ["QUERY_STRING"]=> string(0) "" 
  ["REQUEST_URI"]=> string(8) "/PRODUCT" 
  ["SCRIPT_NAME"]=> string(10) "/index.php" 
  ["PHP_SELF"]=> string(10) "/index.php" 
  ["REQUEST_TIME_FLOAT"]=> float(1383666718.92) 
  ["REQUEST_TIME"]=> int(1383666718)

}

4

3 に答える 3

1
http://localhost/ArrestDB/index.php/[table]

私にとって完璧に機能しました

DNSにブラケットを付けないでください...投稿する方法をまだ検討中です....

于 2015-10-18T07:13:35.080 に答える
0

問題

コードとダンプ情報によると、ArrestDB は完全な要求を受け取っていません。の内容は、アドレスを取得して ArrestDB PHP ファイルに送信するファイルに何か問題がある可能性があることを意味し$_SERVER['REQUEST_URI']ます。"/".htaccess

背景情報

通常、範囲内の HTTP 応答コードは、4XX不正な要求を表します。通常、範囲内の HTTP 応答コードは5XXエラーを表します。

ArrestDB は、4XXエラー コード (正確には 400 ではなく、別の 4XX エラー) で応答します (不適切な SQL パラメータ、サーバー タイムアウトなど)。5XXデータベース接続が何らかの形で「不良」である場合、ArrestDB はエラー コード (特に 503) で応答します。

推論

エラーコードとして正確に 400 で応答するため、提供できる「特定の」エラーコードがないことを意味します (400 は「不明なタイプの不良接続」を意味します)。

可能な修正

最初に私の理論を確認するために、var_dump + exitI ask you to put を削除して代わりに と書くことをお勧めします$_SERVER['REQUEST_URI'] = "/products";。これにより、ArrestDB は、productsテーブルを一覧表示する必要があると判断する必要があります。このハックを使用してすべてが機能することを確認した後、.htaccess問題の解決を試みます。

于 2013-11-05T15:56:32.023 に答える
0

.htaccess ファイルがない場合は、次のように完全な URL を使用する必要があります。http://localhost/ArrestDB/index.php/[table]

于 2015-06-08T21:38:37.830 に答える