EnterpriseのAPIでテーブルにオブジェクトを投入したい

コメント

9件のコメント

  • 正式なコメント
    服部健太

    Authorization ヘッダの渡し方が間違っているため、認証に失敗しているものと思われます。

    -H 'Authorization: Token XXXX'

    を渡すように試してみていただけますでしょうか?

    コメントアクション パーマリンク
  • 鎮守満隆

    ご回答ありがとうございます。

    ご指摘の通り、Authorizationの部分を訂正して実行しましたが同じく「"detail":"メソッド \"POST\" は許されていません。"」が返ってきます。

    0
    コメントアクション パーマリンク
  • 服部健太

    他の原因としましては、

    • Token値が間違っている(ユーザー管理画面のREST APIトークン値をご確認ください)
    • トークンのユーザーにテーブル追加の権限が与えられていない(当該ユーザでブラウザからテーブルにエントリを追加可能かどうかご確認ください)

    といったことが考えられますので、今一度、ご確認いただけますでしょうか。

    0
    コメントアクション パーマリンク
  • 鎮守満隆

    ブラウザからはテーブル配下にオブジェクトが手動作成可能で、APIトークンも同じユーザのものを使用しています。

    「https://IPアドレス/URL/テーブルA/オブジェクト1」が作成される想定ですが、そもそも指定するURLは「https://IPアドレス/URL/テーブルA」で正しいでしょうか。

    配下に作成される認識だったので「...テーブルA/」としたときに”not found.”が返ってくるので、ご教授よろしくお願いします。

    0
    コメントアクション パーマリンク
  • 服部健太

    テーブルAにPOSTする際に指定するURLは

    「https://IPアドレス/URL/テーブルA」

    で問題ございません。

    ためしに上記テーブルオブジェクトを curl 経由で参照できるか、以下のコマンドでご確認いただけますでしょうか?

    curl 'https://IPアドレス/URL/テーブルA' -H 'accept: application/json' -H 'Authorization: Token XXXXX' 

    0
    コメントアクション パーマリンク
  • 鎮守満隆

    早速ご回答いただきありがとうございます。

    >>ためしに上記テーブルオブジェクトを curl 経由で参照できるか

    コマンド実行した結果、テーブルの情報は取得できましたが配下のオブジェクト詳細は表示されませんでした。

    テーブルに要素がいくつ登録されているかは返ってきます。 "extra_properties":{"num_children":16}

    0
    コメントアクション パーマリンク
  • 服部健太

    先ほどのコマンドではテーブル配下のオブジェクト詳細までは取得できません。

    配下のオブジェクトも取得するには、以下のようにテーブルA.children をGETしてください。

    curl 'https://IPアドレス/URL/テーブルA.children' -H 'accept: application/json' -H 'Authorization: Token XXXXX' 

    0
    コメントアクション パーマリンク
  • 鎮守満隆

    ご教示いただき、ありがとうございます。

    当初、質問させていただきました内容についても解決いたしました。

    Kompira REST APIリファレンスに".children"でGET例が載っていたので応用すれば良かったですね。

    ご対応いただきありがとうございました。

     

    一部改変していますが、下記のcURLで無事オブジェクト登録できました。

    curl -X POST 'https://URL/テーブルA.children' -H 'accept: application/json' -H 'Content-Type: application/json' -H 'Authorization: Token XXXXXX' 
    -d '{
    \"name\":\"object01\",
    \"abspath\":\"/テーブルA/object01\",
    \"owner\":\"normal_user\",
    \"fields\":{
    <登録したかったデータ>"
    },
    \"user_permissions\":{},
    \"group_permissions\":{},
    \"display_name\":\"object01\",
    \"description\":\"\",
    \"type_object\":\"/system/types/テーブル定義オブジェクト\",
    \"parent_object\":\"/テーブルA\"
    }'
    0
    コメントアクション パーマリンク
  • 服部健太

    解決されて何よりです。

    ただ、テーブルへのPOSTの場合、.children 無くても、追加できると思います。(権限エラーは別の原因かと思われます)

    0
    コメントアクション パーマリンク

サインインしてコメントを残してください。