概要

Pythonを使ってDrupalにコンテンツを追加する機会がありましたので、その備忘録です。以下の記事を参考にしました。

https://weimingchenzero.medium.com/use-python-to-call-drupal-9-core-restful-api-to-create-new-content-9f3fa8628ab4

Drupalの準備

Amazon Lightsailに作成しました。以下の記事などが参考になります。

https://annai.co.jp/article/use-aws-lightsail

モジュール

以下をインストールします。

  • HTTP Basic Auth
  • JSON:API
  • RESTful Web Services
  • Serialization

JSON:APIの設定変更

以下にアクセスして、設定を変更します。

</admin/config/services/jsonapi>

Python

{ipアドレス or ドメイン名}、{パスワード}を適宜設定してください。

Amazon Lightsailの場合、初期ユーザ名はuserです。またパスワードは以下のコマンドで確認します。

cat~/bitnami_application_password
ifeuph}p}rrmrnea.pod==ay=tompdlero''e''o"}rxtriu{rACadetensscodaqrqtecntueur=et=a""}eqe='pe"tasus{tn{:yttet'}'tptsssh':-{er""}.t.tT"itbpsat'y:biooupaputdst:pe"tly""th/p'nee"vf(/l:os":aoei{id":lrnmic'e:{umdppaa-"eapotp-{W"toripah:"itolra:nnitt"tH/ci'B",TovacsepTrntllhPdieuwaeB.o"paiaaan,tndsp/fe_eiivrrtrc+no.esA}jdmx=u/s.MthtjoaPy"ehsnpyao'itfdn,+hreajoirpsnesio"n,/n,dn'sao.ud"te,h/=a(rut,icpl)e,'json=payload)

その他

以下のようにnote_typeの登録も試みました。

p}urrar.yl=jlso"}=roadendafq(t"u)=a""}{e"tahs{:ytotptss{er""t."itd}p:bie/outsjs"tlcstneero(os"inud":pare:tpl_"ii,t{o/ynnhp"oee":da-,ed-"_enntrooysddp=eeeh__/ettnayyodppdeeeer"_s,t,ypaeu"th"=(username,password),json=payload)

結果、以下のように、Method Not Allowedとなりました。

{''j'esmr''oersdntoteaaratp'stai:'ui':sl:{'''[::{l{'i'''vnt4Neki0orst5s'l'ri:e,oo'un{:t''e:s'eMf'leo1ftu.'hn0:od'd,{f'Nohorrte"fAP'lO:lSoT'whe/tdjt'sp,o:n/a/pjis/onnoadpei_.toyrpge//fnoordmea_tt/y1p.e0"/:'}M}e}t}h,odNotAllowed(Allow:GET,HEAD)',

引き続き調査を続けたいと思います。

まとめ

Headless CMSとしてDrupalを活用するために、引き続き調査を行いたいと思います。