If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.
Property:api generic.lua
BoxMatrix >> Webinterface >> api_generic.lua | @ BoxMatrix - IRC-Chat - Translate: de es fr it nl pl |
News | Selectors | Models | Accessories | Components | Environment | Config | Commands | System | Webif | Software | Develop | Lexicon | Community | Project | Media |
UI-Structure | UI-Modules | HTML-Files | XML-Files | Lua-Scripts | Javascript | Browser | SSI-Files | SSI-Directives | HTML-Text | Event-Text | Help-Pages | CSS-Files | Graphics | Research |
Lua-Script
Lua-Script: | api_generic.lua - type Script | Wiki | Freetz | IPPF | whmf | AVM | Web |
Location: | Webinterface >> Lua-Scripts - Origin: AVM | ||||||
Path: | Release: /usr/rest_api Lab+Rel: /usr/rest_api | ||||||
Properties: | Size: 5.3k - 11.2k - Firmware: 7.39 - 8.00 | ||||||
Function: | REST-API Generic Endpoints |
Goto: Functions - Dependencies - Model-Matrix - SMW-Browser
Details
api_generic.lua provides the REST-API Generic Endpoints. It is included by api.lua.
It creates endpoints from UI-Modules whitelisted by uimod.lua and their webvariables filtered by api_generic_filter.lua.
It provides these request methods to perform actions similar to ctlmgr_ctl:
GET /api/v0/<uimod> # list a complete uimod GET /api/v0/<uimod>/<string> # get a single webvar value or a list GET /api/v0/<uimod>/<string>/<string> # get a single webvar value or a list PUT /api/v0/<uimod> # write request body values to uimod/webvar PUT /api/v0/<uimod>/<string> # write request body values to existing list item POST /api/v0/<uimod>/<string> # create new list item from request body values DELETE /api/v0/<uimod>/<string>/<string> # delete an existing list item by its uid
The whitelisting of uimod.lua is mandatory. Modules not listed there are not accessible.
The whitelisting of api_generic_filter.lua is enabled by default, but could be switched off,
but this will also disable any knowledge about the data types used by whitelisted webvars.
In this so far unused case a generic data model is assumed, which may not work for some modules.
This corner will likely evolve, and the webvar data type knowledge may turn a database with time.
- Lexicon: REST-API
- Commands: scgi_server
- Ports: Port-8187-tcp
- UI-Mods: webui
- API-Root: api.lua
- Includes: api_generic.lua, rest_config.lua, security.lua, espresso.lua
- Includes: rest_api_const.lua, response.lua, error.lua, avmluamessages.lua
- Includes: uimod.lua, api_generic_filter.lua, resource.lua
- Modules: storagenasrights_rest.lua, webusb_rest.lua
- Modules: calllog_rest.lua, faxjournal_rest.lua, phonebook_rest.lua
- Modules: smarthome_rest.lua, boxnotify_rest.lua
- Develop: obl_fboxname.lua, dev_debug.lua, landevice.lua
- Develop: query_tree.lua, fake_modules.lua, obl.lua
Functions
The function names of scripts often help to understand function blocks (and show gaps in the docs). fw 7.50 functions:
$ grep -e '^function' -e '^local function' /usr/rest_api/api_generic.lua local function check_empty_body() # Get all allowed modules from Uimod which are represented as endpoints function api_generic.get_endpoints() # Write the given request body values to the ui-module/webvariables and send their results # to the client - PUT /api/v0/<string>. function api_generic.set_module(params) # Get a single webvariable value, a list or a complete UI module and send it to the client. # GET /api/v0/<string> - GET /api/v0/<string>/<string> - GET /api/v0/<string>/<string>/<string> function api_generic.get_data(params) # Create a new list item and set its values given in the requests body. # POST /api/v0/<string>/<string> function api_generic.create_list_item(params) # Write values of an existing list item given in the requests body. # PUT /api/v0/<string>/<string> function api_generic.set_list_item(params) # Delete an existing list item by its uid. # DELETE /api/v0/<string>/<string>/<string> function api_generic.delete_list_item(params)
Dependencies
Daily updated index of all dependencies of this script. Last update: 2024-11-14 08:31 GMT.
A *
in the Mod
column marks info from Supportdata-Probes, which will always stay incomplete.
If an Object
includes itself then this is a file with the same name but another Path
and the dependencies are merged.
Relation | Typ | Object | Mod | Firmware | Info | Origin |
---|---|---|---|---|---|---|
Requires | lib | libavmluautils.so | 36 | 7.39 - 8.00 | Utility Lua-Library | AVM |
Requires | lua | api_generic_filter.lua | 36 | 7.39 - 8.00 | REST-API UI-Modules Webvar Filter | AVM |
Requires | lua | avmluamessages.lua | 32 | 7.39 - 7.63 | REST-API Debug Message Printer | AVM |
Requires | lua | error.lua | 26 | 7.90 - 8.00 | REST-API Error handling | AVM |
Requires | lua | response.lua | 37 | 7.39 - 8.00 | REST-API Response API | AVM |
Requires | lua | rest_api_const.lua | 37 | 7.39 - 8.00 | REST-API Const Tables | AVM |
Requires | lua | security.lua | 26 | 7.90 - 8.00 | REST-API Security | AVM |
Requires | lua | uimod.lua | 37 | 7.39 - 8.00 | REST-API UI-Modules API | AVM |
Required by | lua | api.lua | 37 | 7.39 - 8.00 | REST-API Lua-Land root for scgi_server | AVM |
Includes | js | box.js | 37 | 7.39 - 8.00 | TODO | AVM |
10 dependencies for this script |
Model-Matrix
Daily updated index of the presence, path and size of this script for each model. Last update: 2024-11-14 06:51 GMT.
Showing all models using this script. Click any column header (click-wait-click) to sort the list by the respective data.
The (main/scrpn/boot/arm/prx/atom/rtl)
label in the Model
column shows which CPU is meant for Multi-Linux models.
Note that this list is merged from Firmware-Probes of all known AVM firmware for a model, including Recovery.exe and Labor-Files.
Model | Firmware | Path | Size/Bytes |
---|---|---|---|
FRITZ!Box 4040 | 7.39 - 8.00 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Box 4050 | 7.58 - 7.90 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Box 4060 | 7.39 - 7.90 | /usr/rest_api | 8.4k - 11.2k |
FRITZ!Box 5530 Fiber (main) | 7.39 - 8.00 | /usr/rest_api | 7.7k - 10.8k |
FRITZ!Box 5590 Fiber (main) | 7.39 - 8.00 | /usr/rest_api | 7.7k - 10.8k |
FRITZ!Box 5590 Fiber (prx) | 7.70 - 8.00 | /usr/rest_api | 7.7k - 10.8k |
FRITZ!Box 5690 Pro (main) | 7.62 - 7.90 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Box 6490 Cable (atom) | 7.39 - 7.51 | /usr/rest_api | 8.4k |
FRITZ!Box 6590 Cable (atom) | 7.39 - 7.51 | /usr/rest_api | 8.4k |
FRITZ!Box 6591 Cable (arm) | 8.00 | /usr/rest_api | 10.8k |
FRITZ!Box 6591 Cable (atom) | 7.39 - 8.00 | /usr/rest_api | 5.3k - 10.8k |
FRITZ!Box 6660 Cable (arm) | 7.90 - 8.00 | /usr/rest_api | 10.8k |
FRITZ!Box 6660 Cable (atom) | 7.39 - 8.00 | /usr/rest_api | 5.3k - 10.8k |
FRITZ!Box 6670 Cable (arm) | 7.90 | /usr/rest_api | 10.8k - 11.2k |
FRITZ!Box 6670 Cable (atom) | 7.61 - 7.90 | /usr/rest_api | 8.4k - 11.2k |
FRITZ!Box 6690 Cable (arm) | 7.90 | /usr/rest_api | 10.8k - 11.2k |
FRITZ!Box 6690 Cable (atom) | 7.39 - 7.90 | /usr/rest_api | 7.9k - 11.2k |
FRITZ!Box 6820 LTE v1 (main) | 7.51 | /usr/rest_api | 8.4k |
FRITZ!Box 6820 LTE v2 (main) | 7.51 | /usr/rest_api | 8.4k |
FRITZ!Box 6820 LTE v3 (main) | 7.51 - 7.57 | /usr/rest_api | 8.4k |
FRITZ!Box 6850 LTE | 7.39 - 7.90 | /usr/rest_api | 7.9k - 10.8k |
FRITZ!Box 6850 5G | 7.39 - 7.90 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Box 6890 LTE (main) | 7.39 - 7.57 | /usr/rest_api | 5.3k - 8.4k |
FRITZ!Box 6890 LTE v1 (main) | 7.39 - 7.57 | /usr/rest_api | 5.3k - 8.4k |
FRITZ!Box 6890 LTE v2 (main) | 7.39 - 7.57 | /usr/rest_api | 5.3k - 8.4k |
FRITZ!Box 7490 (main) | 7.51 | /usr/rest_api | 8.4k |
FRITZ!Box 7510 | 7.39 - 8.00 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Box 7520 | 7.39 - 8.00 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Box 7520 v2 (main) | 7.39 - 8.00 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Box 7530 | 7.39 - 8.00 | /usr/rest_api | 5.3k - 10.8k |
FRITZ!Box 7530 AX | 7.39 - 8.00 | /usr/rest_api | 7.7k - 10.8k |
FRITZ!Box 7583 (main) | 7.50 - 7.59 | /usr/rest_api | 8.4k |
FRITZ!Box 7583 VDSL (main) | 7.59 - 8.00 | /usr/rest_api | 8.4k - 11.2k |
FRITZ!Box 7590 (main) | 7.39 - 8.00 | /usr/rest_api | 5.3k - 11.2k |
FRITZ!Box 7590 AX (main) | 7.39 - 8.00 | /usr/rest_api | 5.3k - 10.8k |
FRITZ!Box 7690 | 7.61 - 7.90 | /usr/rest_api | 8.4k - 10.8k |
FRITZ!Repeater 2400 | 7.39 | /usr/rest_api | 5.3k |
37 models use this script |