OPNsense
  • Home
  • Help
  • Search
  • Login
  • Register

  • OPNsense Forum »
  • International Forums »
  • German - Deutsch (Moderator: Patrick M. Hausen) »
  • OPNsense API
« previous next »
  • Print
Pages: [1]

Author Topic: OPNsense API  (Read 1557 times)

Borsel

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
    • View Profile
OPNsense API
« on: November 27, 2023, 12:19:00 pm »
Hallo Leute,

ich bin dabei mit der API zu experimentieren. Möchte später eine kleine Fernsteuerung über ioBroker realisieren.

Das Problem liegt derzeit darin, dass ich per API zwar erfolgreich GET-Befehle absetzen kann und auch Antworten bekomme. Aber sobald ich iwas mit POST absetze, kommt immer der Feher "failed" oder "error". Kann sich das jmd von euch erklären?

also z.B.:
Code: [Select]
curl -k -u "$key:$secret" http://192.168.2.1/api/diagnostics/interface/getRoutes
funktioniert problemlos. Wenn ich aber
Code: [Select]
curl -k -u "$key:$secret" http://192.168.2.1/api/routes/routes/reconfigure/absetze, kommt immer der Fehler zurück? Muss ich dem genutzten User noch irgendwo irgendwelche Rechte einräumen? Obowohl es sich als root genauso verhält. Kann ja eigentlich nicht ... sonst irgendjemand eine Idee?
Logged

Patrick M. Hausen

  • Moderator
  • Hero Member
  • *****
  • Posts: 6925
  • Karma: 584
    • View Profile
Re: OPNsense API
« Reply #1 on: November 27, 2023, 12:26:58 pm »
Irgendwie fehlt da für einen POST Request doch ein --data oder ein --form oder ein -X post - je nachdem, was denn genau übertragen werden soll.
Logged
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Borsel

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
    • View Profile
Re: OPNsense API
« Reply #2 on: November 27, 2023, 12:29:43 pm »
Na siehste, genau da fehlt mein Verständnis dafür. Da hab ich noch nen Gedankenhänger. An welcher Stelle müsste ich das einbauen?

Also eigentlich will ich nur die gateways neu laden. Aber ich glaube idese funktion gibt es nicht. oder? Also eigentlich will ich nur nen Reload machen.
Logged

Patrick M. Hausen

  • Moderator
  • Hero Member
  • *****
  • Posts: 6925
  • Karma: 584
    • View Profile
Re: OPNsense API
« Reply #3 on: November 27, 2023, 12:53:54 pm »
Das müsste doch in der API-Doku stehen ... sorry, hab damit noch nichts gemacht, es war nur offensichtlich, dass dein curl-Aufruf so definitiv kein POST ist sondern ein GET.
Logged
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Monviech (Cedrik)

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1660
  • Karma: 178
    • View Profile
Re: OPNsense API
« Reply #4 on: November 28, 2023, 07:33:07 pm »
Da ich grade sehr viel mit REST API rumgemacht habe, hier ein Beispiel (von einer API die ich gerade geschrieben habe weil ich grade kein besseres Beispiel habe):

Du musst halt bei POST, PUT, GET etc... das genaue Datenformat kennen was der API Endpunkt erwartet, ansonsten gibt es failed. Und wenn die Authorization nicht stimmt, dann passiert auch nichts.

Code: [Select]
curl -v -k -X POST "https://192.168.3.1/api/caddy/ReverseProxy/add" \
     -H "Authorization: Basic API-KEY" \
     -H "Content-Type: application/json" \
     -d '{"reverse": {"Enabled": "1", "FromDomain": "example.com", "FromPort": "443", "ToDomain": "192.168.1.2", "ToPort": "443", "Description": "Test"}}' \
     --insecure

Wenn eine API keine Daten erwartet, schickt man einfach ein leeres json:
Code: [Select]
-d '{}' \

https://docs.opnsense.org/development/api.html

Den API-KEY wandelt man am besten in base64 um, so:

Code: [Select]
# Replace these with your actual key and secret
API_KEY='...'
API_SECRET='...'

# Base64 encode the credentials
ENCODED_CREDENTIALS=$(echo -n "${API_KEY}:${API_SECRET}" | base64)
« Last Edit: November 28, 2023, 07:38:32 pm by Monviech »
Logged
Hardware:
DEC740

mimugmail

  • Hero Member
  • *****
  • Posts: 6767
  • Karma: 494
    • View Profile
Re: OPNsense API
« Reply #5 on: November 28, 2023, 07:56:35 pm »
Mach doch im Chrome F12 und dann klick auf Add, dann siehst du ob post und wie genau der Endpoint heisst
Logged
WWW: www.routerperformance.net
Support plans: https://www.max-it.de/en/it-services/opnsense/
Commercial Plugins (German): https://opnsense.max-it.de/

  • Print
Pages: [1]
« previous next »
  • OPNsense Forum »
  • International Forums »
  • German - Deutsch (Moderator: Patrick M. Hausen) »
  • OPNsense API
 

OPNsense is an OSS project © Deciso B.V. 2015 - 2024 All rights reserved
  • SMF 2.0.19 | SMF © 2021, Simple Machines
    Privacy Policy
    | XHTML | RSS | WAP2