From 70d62b1a54f2965c812163dfcbba0434be187dcf Mon Sep 17 00:00:00 2001 From: morris Date: Thu, 17 Jul 2025 23:26:12 +0800 Subject: [PATCH] feat(restful_server): upgrade the example to use vue3+vuetify3 also cleaned up the backend firmware to use littlefs filesystem. --- .../protocols/esp_http_server.rst | 2 +- .../protocols/esp_http_server.rst | 2 +- .../http_server/restful_server/CMakeLists.txt | 1 - .../http_server/restful_server/README.md | 131 ++++++---------- .../front/web-demo/.browserslistrc | 3 +- .../front/web-demo/.eslintrc-auto-import.json | 82 ++++++++++ .../front/web-demo/.eslintrc.js | 17 -- .../restful_server/front/web-demo/.gitignore | 7 +- .../restful_server/front/web-demo/README.md | 44 ++++++ .../front/web-demo/babel.config.js | 5 - .../front/web-demo/eslint.config.js | 3 + .../restful_server/front/web-demo/index.html | 13 ++ .../front/web-demo/jsconfig.json | 20 +++ .../front/web-demo/package.json | 49 +++--- .../front/web-demo/postcss.config.js | 5 - .../front/web-demo/public/favicon.ico | Bin 6429 -> 15406 bytes .../front/web-demo/public/index.html | 19 --- .../restful_server/front/web-demo/src/App.vue | 54 +------ .../front/web-demo/src/assets/logo.png | Bin 37327 -> 228354 bytes .../front/web-demo/src/components/README.md | 35 +++++ .../front/web-demo/src/composables/useApi.js | 141 +++++++++++++++++ .../front/web-demo/src/layouts/README.md | 5 + .../front/web-demo/src/layouts/default.vue | 72 +++++++++ .../restful_server/front/web-demo/src/main.js | 31 ++-- .../front/web-demo/src/pages/README.md | 5 + .../front/web-demo/src/pages/chart.vue | 85 ++++++++++ .../front/web-demo/src/pages/index.vue | 59 +++++++ .../front/web-demo/src/pages/light.vue | 144 +++++++++++++++++ .../front/web-demo/src/plugins/README.md | 3 + .../front/web-demo/src/plugins/alova.js | 10 ++ .../front/web-demo/src/plugins/index.js | 19 +++ .../front/web-demo/src/plugins/vuetify.js | 48 +++++- .../front/web-demo/src/router.js | 29 ---- .../front/web-demo/src/router/index.js | 36 +++++ .../front/web-demo/src/services/api.js | 70 +++++++++ .../front/web-demo/src/store.js | 28 ---- .../front/web-demo/src/stores/README.md | 5 + .../front/web-demo/src/stores/app.js | 8 + .../front/web-demo/src/stores/chart.js | 25 +++ .../front/web-demo/src/stores/index.js | 4 + .../front/web-demo/src/styles/README.md | 3 + .../front/web-demo/src/styles/settings.scss | 10 ++ .../front/web-demo/src/views/Chart.vue | 41 ----- .../front/web-demo/src/views/Home.vue | 40 ----- .../front/web-demo/src/views/Light.vue | 62 -------- .../front/web-demo/vite.config.mjs | 145 ++++++++++++++++++ .../front/web-demo/vue.config.js | 11 -- .../restful_server/main/CMakeLists.txt | 10 +- .../restful_server/main/Kconfig.projbuild | 43 +----- .../restful_server/main/esp_rest_main.c | 105 ++++--------- .../restful_server/main/idf_component.yml | 6 +- .../restful_server/main/rest_server.c | 58 ++++--- .../restful_server/partitions_example.csv | 3 +- .../restful_server/sdkconfig.defaults | 2 - tools/ci/check_copyright_ignore.txt | 2 - 55 files changed, 1263 insertions(+), 597 deletions(-) create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/.eslintrc-auto-import.json delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/.eslintrc.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/README.md delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/babel.config.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/eslint.config.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/index.html create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/jsconfig.json delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/postcss.config.js delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/public/index.html create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/components/README.md create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/composables/useApi.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/layouts/README.md create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/layouts/default.vue create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/pages/README.md create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/pages/chart.vue create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/pages/index.vue create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/pages/light.vue create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/plugins/README.md create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/plugins/alova.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/plugins/index.js delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/router.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/router/index.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/services/api.js delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/store.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/stores/README.md create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/stores/app.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/stores/chart.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/stores/index.js create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/styles/README.md create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/styles/settings.scss delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/views/Chart.vue delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/views/Home.vue delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue create mode 100644 examples/protocols/http_server/restful_server/front/web-demo/vite.config.mjs delete mode 100644 examples/protocols/http_server/restful_server/front/web-demo/vue.config.js diff --git a/docs/en/api-reference/protocols/esp_http_server.rst b/docs/en/api-reference/protocols/esp_http_server.rst index 458ed327e2..88078305da 100644 --- a/docs/en/api-reference/protocols/esp_http_server.rst +++ b/docs/en/api-reference/protocols/esp_http_server.rst @@ -106,7 +106,7 @@ Asynchronous Handlers RESTful API ----------- -:example:`protocols/http_server/restful_server` demonstrates how to implement a RESTful API server and HTTP server, with a frontend browser UI, and designs several APIs to fetch resources, using mDNS to parse the domain name, and deploying the webpage to host PC via semihost technology or to SPI flash or SD Card. +:example:`protocols/http_server/restful_server` demonstrates how to implement a RESTful API server and web server, with a modern frontend UI, and designs several APIs to fetch resources, using mDNS to parse the domain name, and deploying the webpage to SPI flash. URI Handlers ------------ diff --git a/docs/zh_CN/api-reference/protocols/esp_http_server.rst b/docs/zh_CN/api-reference/protocols/esp_http_server.rst index 842719283e..4fa545f442 100644 --- a/docs/zh_CN/api-reference/protocols/esp_http_server.rst +++ b/docs/zh_CN/api-reference/protocols/esp_http_server.rst @@ -106,7 +106,7 @@ ESP HTTP 服务器有各种事件,当特定事件发生时,:doc:`事件循 RESTful API ----------- -:example:`protocols/http_server/restful_server` 演示了如何实现 RESTful API 服务器和 HTTP 服务器,并结合前端浏览器 UI,设计了多个 API 来获取资源,使用 mDNS 解析域名,并通过半主机技术将网页部署到主机 PC、SPI flash 或 SD 卡上。 +:example:`protocols/http_server/restful_server` 演示了如何实现 RESTful API 服务器和网页服务器,设计了多个 API 服务端点,使用 mDNS 解析域名,以及将网页部署到 SPI flash 中。 URI 处理程序 ------------ diff --git a/examples/protocols/http_server/restful_server/CMakeLists.txt b/examples/protocols/http_server/restful_server/CMakeLists.txt index 0ea48face2..e619339e99 100644 --- a/examples/protocols/http_server/restful_server/CMakeLists.txt +++ b/examples/protocols/http_server/restful_server/CMakeLists.txt @@ -1,6 +1,5 @@ cmake_minimum_required(VERSION 3.16) - include($ENV{IDF_PATH}/tools/cmake/project.cmake) # "Trim" the build. Include the minimal set of components, main, and anything it depends on. idf_build_set_property(MINIMAL_BUILD ON) diff --git a/examples/protocols/http_server/restful_server/README.md b/examples/protocols/http_server/restful_server/README.md index 512a5531b0..1f92712d83 100644 --- a/examples/protocols/http_server/restful_server/README.md +++ b/examples/protocols/http_server/restful_server/README.md @@ -7,135 +7,102 @@ ## Overview -This example mainly introduces how to implement a RESTful API server and HTTP server on ESP32, with a frontend browser UI. +This example demonstrates on the implementation of both the RESTful API server and web server on ESP32, with a modern UI made by Vue.js and Vuetify frameworks. Please note, using the Vue is not a must, we're just using it as an example to show how to build a modern web UI with the latest web technologies in an IoT application. -This example designs several APIs to fetch resources as follows: +This example exposes several APIs for the clients to fetch resources as follows: -| API | Method | Resource Example | Description | Page URL | -| -------------------------- | ------ | ----------------------------------------------------- | ---------------------------------------------------------------------------------------- | -------- | -| `/api/v1/system/info` | `GET` | {
version:"v4.0-dev",
cores:2
} | Used for clients to get system information like IDF version, ESP32 cores, etc | `/` | -| `/api/v1/temp/raw` | `GET` | {
raw:22
} | Used for clients to get raw temperature data read from sensor | `/chart` | -| `/api/v1/light/brightness` | `POST` | {
red:160,
green:160,
blue:160
} | Used for clients to upload control values to ESP32 in order to control LED’s brightness | `/light` | - -**Page URL** is the URL of the webpage which will send a request to the API. +| API | Method | Resource Example | Description | +| -------------------------- | ------ | ----------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `/api/v1/system/info` | `GET` | {
version:"v6.0-dev",
cores:2
} | Return system information like IDF version, CPU cores, etc | +| `/api/v1/temp/raw` | `GET` | {
raw:22
} | Return temperature data (note, this API returns a random number just for illustration) | +| `/api/v1/light/brightness` | `POST` | {
red:160,
green:160,
blue:160
} | Set the RGB value of the LED light | ### About mDNS -The IP address of an IoT device may vary from time to time, so it’s impracticable to hard code the IP address in the webpage. In this example, we use the `mDNS` to parse the domain name `esp-home.local`, so that we can always get access to the web server by this URL no matter what the real IP address behind it. See [here](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/protocols/mdns.html) for more information about mDNS. +The IP address of an IoT device may vary from time to time, so it’s impracticable to hard code the IP address in the webpage. In this example, we use the `mDNS` to parse the domain name `dashboard.local`, so that we can always get access to the web server by this URL no matter what the real IP address behind it. See [here](https://docs.espressif.com/projects/esp-protocols/mdns/docs/latest/en/index.html) for more information about mDNS. **Notes: mDNS is installed by default on most operating systems or is available as separate package.** -### About deploy mode - -In development mode, it would be awful to flash the whole webpages every time we update the html, js or css files. So it is highly recommended to deploy the webpage to host PC via `semihost` technology. Whenever the browser fetch the webpage, ESP32 can forward the required files located on host PC. By this mean, it will save a lot of time when designing new pages. - -After developing, the pages should be deployed to one of the following destinations: - -* SPI Flash - which is recommended when the website after built is small (e.g. less than 2MB). -* SD Card - which would be an option when the website after built is very large that the SPI Flash have not enough space to hold (e.g. larger than 2MB). - ### About frontend framework -Many famous frontend frameworks (e.g. Vue, React, Angular) can be used in this example. Here we just take [Vue](https://vuejs.org/) as example and adopt the [vuetify](https://vuetifyjs.com/) as the UI library. +Many famous frontend frameworks (e.g. Vue, React, Svelte) can be used in this example. Here we just take [Vue](https://vuejs.org/) as example and adopt the [vuetify](https://vuetifyjs.com/) as the UI component library. -## How to use example +### About developing frontend and backend independently + +In this example, the webpage files (html, js, css, images, etc) are stored in the filesystem on the ESP chip (we use the littlefs as an example). You can, however, develop the frontend without flashing the filesystem to the ESP every time: + +1. First, disable the `EXAMPLE_DEPLOY_WEB_PAGES` from the menuconfig, implement the endpoints in the backend (the application running on the ESP) and flash it to the device. +2. Start developing the frontend on the PC, using Vite dev mode: `pnpm dev`. In dev mode, you can edit the source code of the frontend and see the changes in the web browser immediately. The frontend will be served from your PC, while the Vite proxy will automatically forward the HTTP requests to the `/api` endpoints to the ESP chip. +3. Once the frontend development and debugging is done, build the web pages by running `pnpm build`, which will generate the static files in the `dist` directory. +4. Finally, enable the `EXAMPLE_DEPLOY_WEB_PAGES` option in the menuconfig, and flash the webpages with the backend firmware together to the ESP chip again. + +This way, you can develop the frontend and backend independently, which is very convenient for web developers. + +## How to use the example ### Hardware Required -To run this example, you need an ESP32 dev board (e.g. ESP32-WROVER Kit, ESP32-Ethernet-Kit) or ESP32 core board (e.g. ESP32-DevKitC). An extra JTAG adapter might also needed if you choose to deploy the website by semihosting. For more information about supported JTAG adapter, please refer to [select JTAG adapter](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/index.html#jtag-debugging-selecting-jtag-adapter). Or if you choose to deploy the website to SD card, an extra SD slot board is needed. - -#### Pin Assignment: - -Only if you deploy the website to SD card, then the following pin connection is used in this example. - -| ESP32 | SD Card | -| ------ | ------- | -| GPIO2 | D0 | -| GPIO4 | D1 | -| GPIO12 | D2 | -| GPIO13 | D3 | -| GPIO14 | CLK | -| GPIO15 | CMD | - +To run this example, you need an ESP32 dev board (e.g. ESP32-WROVER Kit, ESP32-Ethernet-Kit) with Wi-Fi or Ethernet connection. ### Configure the project Open the project configuration menu (`idf.py menuconfig`). -In the `Example Connection Configuration` menu: - -* Choose the network interface in `Connect using` option based on your board. Currently we support both Wi-Fi and Ethernet. -* If you select the Wi-Fi interface, you also have to set: - * Wi-Fi SSID and Wi-Fi password that your esp32 will connect to. -* If you select the Ethernet interface, you also have to set: - * PHY model in `Ethernet PHY` option, e.g. IP101. - * PHY address in `PHY Address` option, which should be determined by your board schematic. - * EMAC Clock mode, GPIO used by SMI. - In the `Example Configuration` menu: * Set the domain name in `mDNS Host Name` option. -* Choose the deploy mode in `Website deploy mode`, currently we support deploy website to host PC, SD card and SPI Nor flash. - * If we choose to `Deploy website to host (JTAG is needed)`, then we also need to specify the full path of the website in `Host path to mount (e.g. absolute path to web dist directory)`. * Set the mount point of the website in `Website mount point in VFS` option, the default value is `/www`. +* Enable the `Deploy web pages to device's filesystem` option to deploy the web pages to the device's filesystem. This will flash the files from `front/web-demo/dist` to the device's filesystem. -### Build and Flash +### Build the web project After the webpage design work has been finished, you should compile them by running following commands: ```bash cd path_to_this_example/front/web-demo -npm install -npm run build +pnpm install +pnpm build ``` -> **_NOTE:_** This example needs `nodejs` version `v10.19.0` After a while, you will see a `dist` directory which contains all the website files (e.g. html, js, css, images). -Run `idf.py -p PORT flash monitor` to build and flash the project.. +Refer to [front/web-demo/README.md](front/web-demo/README.md) for more information about the front-end development. + +### Build and Flash to ESP32 device + +Then, you can Run `idf.py -p PORT flash monitor` to build and flash the project (including the webpage bundle) to ESP32; (To exit the serial monitor, type ``Ctrl-]``.) See the [Getting Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html) for full steps to configure and use ESP-IDF to build projects. -### Extra steps to do for deploying website by semihost - -We need to run the latest version of OpenOCD which should support semihost feature when we test this deploy mode: - -```bash -openocd-esp32/bin/openocd -s openocd-esp32/share/openocd/scripts -f board/esp32-wrover-kit-3.3v.cfg -``` - ## Example Output -### Render webpage in browser +### Check the webpage in browser -In your browser, enter the URL where the website located (e.g. `http://esp-home.local`). You can also enter the IP address that ESP32 obtained if your operating system currently don't have support for mDNS service. +In your browser, enter the URL where the website located (e.g. `http://dashboard.local`). You can also enter the IP address that ESP32 obtained if your operating system currently don't have support for mDNS service. -Besides that, this example also enables the NetBIOS feature with the domain name `esp-home`. If your OS supports NetBIOS and has enabled it (e.g. Windows has native support for NetBIOS), then the URL `http://esp-home` should also work. - -![esp_home_local](https://dl.espressif.com/dl/esp-idf/docs/_static/esp_home_local.gif) +Besides that, this example also enables the NetBIOS feature with the domain name `dashboard`. If your OS supports NetBIOS and has enabled it (e.g. Windows has native support for NetBIOS), then the URL `http://dashboard` should also work. ### ESP monitor output -In the *Light* page, after we set up the light color and click on the check button, the browser will send a post request to ESP32, and in the console, we just print the color value. +In the *Light* page, after we set up the light color and click on the check button, the browser will send a post request to ESP32, and the RGB value will be printed in the ESP32's console. ```bash -I (6115) example_connect: Connected to Ethernet -I (6115) example_connect: IPv4 address: 192.168.2.151 -I (6325) esp-home: Partition size: total: 1920401, used: 1587575 -I (6325) esp-rest: Starting HTTP Server -I (128305) esp-rest: File sending complete -I (128565) esp-rest: File sending complete -I (128855) esp-rest: File sending complete -I (129525) esp-rest: File sending complete -I (129855) esp-rest: File sending complete -I (137485) esp-rest: Light control: red = 50, green = 85, blue = 28 +I (422) main_task: Calling app_main() +I (422) mdns_mem: mDNS task will be created from internal RAM +I (422) example_connect: Start example_connect. +I (612) example_connect: Connecting to TP-LINK_CB59... +I (622) example_connect: Waiting for IP(s) +I (4792) esp_netif_handlers: example_netif_sta ip: 192.168.0.112, mask: 255.255.255.0, gw: 192.168.0.1 +I (4792) example_connect: Got IPv4 event: Interface "example_netif_sta" address: 192.168.0.112 +I (4792) example_common: Connected to example_netif_sta +I (4802) example_common: - IPv4 address: 192.168.0.112, +I (4832) example: Partition size: total: 2097152, used: 770048 +I (4832) esp-rest: Starting HTTP Server +I (4832) main_task: Returned from app_main() +I (49052) esp-rest: File sending complete +I (67352) esp-rest: Light control: red = 160, green = 160, blue = 48 ``` -## Troubleshooting - -1. Error occurred when building example: `...front/web-demo/dist doesn't exit. Please run 'npm run build' in ...front/web-demo`. - * When you choose to deploy website to SPI flash, make sure the `dist` directory has been generated before you building this example. - (For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you as soon as possible.) diff --git a/examples/protocols/http_server/restful_server/front/web-demo/.browserslistrc b/examples/protocols/http_server/restful_server/front/web-demo/.browserslistrc index 9dee646463..dc3bc09a24 100644 --- a/examples/protocols/http_server/restful_server/front/web-demo/.browserslistrc +++ b/examples/protocols/http_server/restful_server/front/web-demo/.browserslistrc @@ -1,3 +1,4 @@ > 1% last 2 versions -not ie <= 8 +not dead +not ie 11 diff --git a/examples/protocols/http_server/restful_server/front/web-demo/.eslintrc-auto-import.json b/examples/protocols/http_server/restful_server/front/web-demo/.eslintrc-auto-import.json new file mode 100644 index 0000000000..7ea7de726a --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/.eslintrc-auto-import.json @@ -0,0 +1,82 @@ +{ + "globals": { + "Component": true, + "ComponentPublicInstance": true, + "ComputedRef": true, + "DirectiveBinding": true, + "EffectScope": true, + "ExtractDefaultPropTypes": true, + "ExtractPropTypes": true, + "ExtractPublicPropTypes": true, + "InjectionKey": true, + "MaybeRef": true, + "MaybeRefOrGetter": true, + "PropType": true, + "Ref": true, + "Slot": true, + "Slots": true, + "VNode": true, + "WritableComputedRef": true, + "computed": true, + "createApp": true, + "customRef": true, + "defineAsyncComponent": true, + "defineComponent": true, + "defineStore": true, + "effectScope": true, + "getCurrentInstance": true, + "getCurrentScope": true, + "h": true, + "inject": true, + "isProxy": true, + "isReactive": true, + "isReadonly": true, + "isRef": true, + "markRaw": true, + "nextTick": true, + "onActivated": true, + "onBeforeMount": true, + "onBeforeRouteLeave": true, + "onBeforeRouteUpdate": true, + "onBeforeUnmount": true, + "onBeforeUpdate": true, + "onDeactivated": true, + "onErrorCaptured": true, + "onMounted": true, + "onRenderTracked": true, + "onRenderTriggered": true, + "onScopeDispose": true, + "onServerPrefetch": true, + "onUnmounted": true, + "onUpdated": true, + "onWatcherCleanup": true, + "provide": true, + "reactive": true, + "readonly": true, + "ref": true, + "resolveComponent": true, + "shallowReactive": true, + "shallowReadonly": true, + "shallowRef": true, + "storeToRefs": true, + "toRaw": true, + "toRef": true, + "toRefs": true, + "toValue": true, + "triggerRef": true, + "unref": true, + "useAttrs": true, + "useCssModule": true, + "useCssVars": true, + "useId": true, + "useModel": true, + "useRoute": true, + "useRouter": true, + "useSlots": true, + "useTemplateRef": true, + "watch": true, + "watchEffect": true, + "watchPostEffect": true, + "watchSyncEffect": true + } +} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/.eslintrc.js b/examples/protocols/http_server/restful_server/front/web-demo/.eslintrc.js deleted file mode 100644 index 98d043169d..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/.eslintrc.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - root: true, - env: { - node: true - }, - 'extends': [ - 'plugin:vue/essential', - '@vue/standard' - ], - rules: { - 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' - }, - parserOptions: { - parser: 'babel-eslint' - } -} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/.gitignore b/examples/protocols/http_server/restful_server/front/web-demo/.gitignore index d0d94890c3..46c09f8138 100644 --- a/examples/protocols/http_server/restful_server/front/web-demo/.gitignore +++ b/examples/protocols/http_server/restful_server/front/web-demo/.gitignore @@ -10,6 +10,7 @@ node_modules npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* # Editor directories and files .idea @@ -20,7 +21,5 @@ yarn-error.log* *.sln *.sw? -# APIs used in this example is simple and stable enough. -# There shouldn't be risk of compatibility unless the major version of some library changed. -# To compress the package size, just exclude the package-lock.json file. -package-lock.json +# Ignore pnpm lock file +pnpm-lock.yaml diff --git a/examples/protocols/http_server/restful_server/front/web-demo/README.md b/examples/protocols/http_server/restful_server/front/web-demo/README.md new file mode 100644 index 0000000000..637719eca2 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/README.md @@ -0,0 +1,44 @@ +# Dashboard + +This is a modernized version of the dashboard web interface. + +## Features + +- **Home**: Display ESP system information (IDF version, CPU name) +- **Chart**: Real-time temperature data visualization with spark-line chart +- **Light**: RGB light control with color sliders + +## Technology Stack + +- **Vue 3**: Modern Vue.js framework with Composition API +- **Vuetify 3**: Material Design component library +- **Alova**: Modern HTTP client with better performance and features +- **Pinia**: State management +- **Vite**: Fast build tool and development server + +## Performance Optimizations + +- **Tree-shaking for icons**: Only imports specific MDI icons used in the app (this is important for deploying web pages to embedded devices like ESP32) +- **Modern bundle size**: Smaller bundle with Vite and modern dependencies +- **Composition API**: Better performance and code organization + +## API Endpoints + +The application expects the following endpoints from ESP32 device: + +- `GET /api/v1/system/info` - System information +- `GET /api/v1/temp/raw` - Temperature sensor data +- `POST /api/v1/light/brightness` - Set RGB LED colors + +## Development + +```bash +# Install dependencies +pnpm install + +# Start development server +pnpm dev + +# Build for production +pnpm build +``` diff --git a/examples/protocols/http_server/restful_server/front/web-demo/babel.config.js b/examples/protocols/http_server/restful_server/front/web-demo/babel.config.js deleted file mode 100644 index ba179669a1..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/babel.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - presets: [ - '@vue/app' - ] -} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/eslint.config.js b/examples/protocols/http_server/restful_server/front/web-demo/eslint.config.js new file mode 100644 index 0000000000..bb027414d0 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/eslint.config.js @@ -0,0 +1,3 @@ +import vuetify from 'eslint-config-vuetify' + +export default vuetify() diff --git a/examples/protocols/http_server/restful_server/front/web-demo/index.html b/examples/protocols/http_server/restful_server/front/web-demo/index.html new file mode 100644 index 0000000000..94fa3fe5f4 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/index.html @@ -0,0 +1,13 @@ + + + + + + + Welcome to Dashboard + + +
+ + + diff --git a/examples/protocols/http_server/restful_server/front/web-demo/jsconfig.json b/examples/protocols/http_server/restful_server/front/web-demo/jsconfig.json new file mode 100644 index 0000000000..dad0634ca4 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/jsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "allowJs": true, + "target": "es5", + "module": "esnext", + "baseUrl": "./", + "moduleResolution": "bundler", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + } +} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/package.json b/examples/protocols/http_server/restful_server/front/web-demo/package.json index 0872008e61..6068615ee1 100644 --- a/examples/protocols/http_server/restful_server/front/web-demo/package.json +++ b/examples/protocols/http_server/restful_server/front/web-demo/package.json @@ -1,32 +1,35 @@ { - "name": "web-demo", - "version": "0.1.0", + "name": "dashboard", "private": true, + "type": "module", + "version": "0.1.0", "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "lint": "vue-cli-service lint" + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "lint": "eslint . --fix" }, "dependencies": { - "axios": "^0.21.1", - "core-js": "^2.6.5", - "vue": "^2.6.10", - "vue-router": "^3.0.3", - "vuetify": "^1.5.14", - "vuex": "^3.0.1" + "@fontsource/roboto": "5.2.6", + "@mdi/js": "7.4.47", + "alova": "3.3.4", + "vue": "3.5.17", + "vuetify": "3.9.2" }, "devDependencies": { - "@vue/cli-plugin-babel": "^3.7.0", - "@vue/cli-plugin-eslint": "^3.7.0", - "@vue/cli-service": "^3.7.0", - "@vue/eslint-config-standard": "^4.0.0", - "babel-eslint": "^10.0.1", - "eslint": "^5.16.0", - "eslint-plugin-vue": "^5.0.0", - "stylus": "^0.54.5", - "stylus-loader": "^3.0.1", - "vue-cli-plugin-vuetify": "^0.5.0", - "vue-template-compiler": "^2.5.21", - "vuetify-loader": "^1.0.5" + "@vitejs/plugin-vue": "6.0.0", + "eslint": "9.31.0", + "eslint-config-vuetify": "4.0.0", + "globals": "16.3.0", + "pinia": "3.0.3", + "sass-embedded": "1.89.2", + "unplugin-auto-import": "19.3.0", + "unplugin-fonts": "1.3.1", + "unplugin-vue-components": "28.8.0", + "unplugin-vue-router": "0.14.0", + "vite": "7.0.5", + "vite-plugin-vue-layouts-next": "1.0.0", + "vite-plugin-vuetify": "2.1.1", + "vue-router": "4.5.1" } } diff --git a/examples/protocols/http_server/restful_server/front/web-demo/postcss.config.js b/examples/protocols/http_server/restful_server/front/web-demo/postcss.config.js deleted file mode 100644 index 961986e2b1..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {} - } -} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/public/favicon.ico b/examples/protocols/http_server/restful_server/front/web-demo/public/favicon.ico index 17b8ff3cb6c3c920c732f563c2507c8472dfb95c..8fb9f91b3aab4eec0c76ffc5342528033c61e247 100644 GIT binary patch literal 15406 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 O1_n=8KbLh*2~7ZoN?8Q} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/public/index.html b/examples/protocols/http_server/restful_server/front/web-demo/public/index.html deleted file mode 100644 index 26a416ee4f..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/public/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - ESP-HOME - - - - - -
- - - diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/App.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/App.vue index 0d79bb1819..64618cdf22 100644 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/App.vue +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/App.vue @@ -1,55 +1,9 @@ - diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/assets/logo.png b/examples/protocols/http_server/restful_server/front/web-demo/src/assets/logo.png index c19919e5cafb7933aa0815c044461ddde4f765ac..ac7ee75badf2dc47e26d20e9e55ac0ea4f01924d 100644 GIT binary patch literal 228354 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

Kf=SLEtxI<( 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�dXLDQS%=K}MF(D<|l-FmZ*m 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 literal 37327 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 diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/components/README.md b/examples/protocols/http_server/restful_server/front/web-demo/src/components/README.md new file mode 100644 index 0000000000..d1dc92f5e1 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/components/README.md @@ -0,0 +1,35 @@ +# Components + +Vue template files in this folder are automatically imported. + +## 🚀 Usage + +Importing is handled by [unplugin-vue-components](https://github.com/unplugin/unplugin-vue-components). This plugin automatically imports `.vue` files created in the `src/components` directory, and registers them as global components. This means that you can use any component in your application without having to manually import it. + +The following example assumes a component located at `src/components/MyComponent.vue`: + +```vue + + + +``` + +When your template is rendered, the component's import will automatically be inlined, which renders to this: + +```vue + + + +``` diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/composables/useApi.js b/examples/protocols/http_server/restful_server/front/web-demo/src/composables/useApi.js new file mode 100644 index 0000000000..3f101f243b --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/composables/useApi.js @@ -0,0 +1,141 @@ +/** + * Composables for dashboard application + */ +import { onUnmounted, ref, watch } from 'vue' +import { lightApi, systemApi, tempApi } from '@/services/api' + +/** + * Composable for system information + */ +export function useSystemInfo () { + const systemInfo = ref(null) + const loading = ref(false) + const error = ref(null) + + const fetchSystemInfo = async () => { + loading.value = true + error.value = null + try { + const response = await systemApi.getInfo().send() + systemInfo.value = response + } catch (error_) { + error.value = error_ + console.error('Failed to fetch system info:', error_) + } finally { + loading.value = false + } + } + + return { + systemInfo, + loading, + error, + fetchSystemInfo, + } +} + +/** + * Composable for temperature data polling + */ +export function useTemperaturePolling (interval = 1000) { + const isPolling = ref(false) + const error = ref(null) + let timer = null + + const startPolling = callback => { + if (isPolling.value) { + return + } + + isPolling.value = true + timer = setInterval(async () => { + try { + // Force fresh request by bypassing cache + const response = await tempApi.getRaw().send({ force: true }) + callback(response.raw) + error.value = null + } catch (error_) { + error.value = error_ + console.error('Failed to fetch temperature data:', error_) + } + }, interval) + } + + const stopPolling = () => { + if (timer) { + clearInterval(timer) + timer = null + } + isPolling.value = false + } + + onUnmounted(() => { + stopPolling() + }) + + return { + isPolling, + error, + startPolling, + stopPolling, + } +} + +/** + * Composable for light control + */ +export function useLightControl () { + // Load saved RGB values from localStorage or use defaults + const savedRed = localStorage.getItem('lightControl.red') + const savedGreen = localStorage.getItem('lightControl.green') + const savedBlue = localStorage.getItem('lightControl.blue') + + const red = ref(savedRed ? Number.parseInt(savedRed) : 160) + const green = ref(savedGreen ? Number.parseInt(savedGreen) : 160) + const blue = ref(savedBlue ? Number.parseInt(savedBlue) : 160) + const loading = ref(false) + const error = ref(null) + + // Watch for changes and save to localStorage + watch(red, newValue => { + localStorage.setItem('lightControl.red', newValue.toString()) + }) + + watch(green, newValue => { + localStorage.setItem('lightControl.green', newValue.toString()) + }) + + watch(blue, newValue => { + localStorage.setItem('lightControl.blue', newValue.toString()) + }) + + const setColor = async () => { + loading.value = true + error.value = null + try { + // Ensure RGB values are integers (0-255) + const colorData = { + red: Math.round(Math.max(0, Math.min(255, red.value || 0))), + green: Math.round(Math.max(0, Math.min(255, green.value || 0))), + blue: Math.round(Math.max(0, Math.min(255, blue.value || 0))), + } + console.log('Setting color:', colorData) + const response = await lightApi.setBrightness(colorData).send() + console.log('Light control response:', response) + } catch (error_) { + error.value = error_ + console.error('Failed to set color:', error_) + } finally { + loading.value = false + } + } + + return { + red, + green, + blue, + loading, + error, + setColor, + } +} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/layouts/README.md b/examples/protocols/http_server/restful_server/front/web-demo/src/layouts/README.md new file mode 100644 index 0000000000..78f68b6028 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/layouts/README.md @@ -0,0 +1,5 @@ +# Layouts + +Layouts are reusable components that wrap around pages. They are used to provide a consistent look and feel across multiple pages. + +Full documentation for this feature can be found in the Official [vite-plugin-vue-layouts-next](https://github.com/loicduong/vite-plugin-vue-layouts-next) repository. diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/layouts/default.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/layouts/default.vue new file mode 100644 index 0000000000..0b9ca0050b --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/layouts/default.vue @@ -0,0 +1,72 @@ + + + diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/main.js b/examples/protocols/http_server/restful_server/front/web-demo/src/main.js index ef8f1c5cba..1b839a98b6 100644 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/main.js +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/main.js @@ -1,16 +1,23 @@ -import Vue from 'vue' -import './plugins/vuetify' +/** + * main.js + * + * Bootstraps Vuetify and other plugins then mounts the App` + */ + +// Composables +import { createApp } from 'vue' + +// Plugins +import { registerPlugins } from '@/plugins' + +// Components import App from './App.vue' -import router from './router' -import axios from 'axios' -import store from './store' -Vue.config.productionTip = false +// Styles +import 'unfonts.css' -Vue.prototype.$ajax = axios +const app = createApp(App) -new Vue({ - router, - store, - render: h => h(App) -}).$mount('#app') +registerPlugins(app) + +app.mount('#app') diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/pages/README.md b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/README.md new file mode 100644 index 0000000000..341536c2ff --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/README.md @@ -0,0 +1,5 @@ +# Pages + +Vue components created in this folder will automatically be converted to navigatable routes. + +Full documentation for this feature can be found in the Official [unplugin-vue-router](https://github.com/posva/unplugin-vue-router) repository. diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/pages/chart.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/chart.vue new file mode 100644 index 0000000000..6fe6000418 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/chart.vue @@ -0,0 +1,85 @@ + + + diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/pages/index.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/index.vue new file mode 100644 index 0000000000..ee1910c3bb --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/index.vue @@ -0,0 +1,59 @@ + + + diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/pages/light.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/light.vue new file mode 100644 index 0000000000..33e0bd830c --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/pages/light.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/README.md b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/README.md new file mode 100644 index 0000000000..62201c7cfc --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/README.md @@ -0,0 +1,3 @@ +# Plugins + +Plugins are a way to extend the functionality of your Vue application. Use this folder for registering plugins that you want to use globally. diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/alova.js b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/alova.js new file mode 100644 index 0000000000..8f14c858df --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/alova.js @@ -0,0 +1,10 @@ +/** + * plugins/alova.js + * + * Alova HTTP client configuration + */ +import { alova } from '@/services/api' + +export default function alovaPlugin (app) { + app.config.globalProperties.$alova = alova +} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/index.js b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/index.js new file mode 100644 index 0000000000..3f444c602f --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/index.js @@ -0,0 +1,19 @@ +/** + * plugins/index.js + * + * Automatically included in `./src/main.js` + */ + +import router from '@/router' +import pinia from '@/stores' +import alova from './alova' +// Plugins +import vuetify from './vuetify' + +export function registerPlugins (app) { + app + .use(vuetify) + .use(router) + .use(pinia) + .use(alova) +} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/vuetify.js b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/vuetify.js index 975696e792..8c110af03e 100644 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/vuetify.js +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/plugins/vuetify.js @@ -1,7 +1,45 @@ -import Vue from 'vue' -import Vuetify from 'vuetify/lib' -import 'vuetify/src/stylus/app.styl' +/** + * plugins/vuetify.js + * + * Framework documentation: https://vuetifyjs.com` + */ -Vue.use(Vuetify, { - iconfont: 'md', +import { + mdiChartLine, + mdiCheck, + mdiHome, + mdiLightbulb, + mdiMenu, +} from '@mdi/js' + +// Composables +import { createVuetify } from 'vuetify' + +// Icons +import { aliases, mdi } from 'vuetify/iconsets/mdi-svg' +// Styles +import 'vuetify/styles' + +// Custom icon aliases for on-demand loading +const customAliases = { + ...aliases, + 'home': mdiHome, + 'chart-line': mdiChartLine, + 'lightbulb': mdiLightbulb, + 'check': mdiCheck, + 'menu': mdiMenu, +} + +// https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides +export default createVuetify({ + icons: { + defaultSet: 'mdi', + aliases: customAliases, + sets: { + mdi, + }, + }, + theme: { + defaultTheme: 'light', + }, }) diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/router.js b/examples/protocols/http_server/restful_server/front/web-demo/src/router.js deleted file mode 100644 index 2e6ce9440b..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/router.js +++ /dev/null @@ -1,29 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' -import Home from './views/Home.vue' -import Chart from './views/Chart.vue' -import Light from './views/Light.vue' - -Vue.use(Router) - -export default new Router({ - mode: 'history', - base: process.env.BASE_URL, - routes: [ - { - path: '/', - name: 'home', - component: Home - }, - { - path: '/chart', - name: 'chart', - component: Chart - }, - { - path: '/light', - name: 'light', - component: Light - } - ] -}) diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/router/index.js b/examples/protocols/http_server/restful_server/front/web-demo/src/router/index.js new file mode 100644 index 0000000000..dc0f31a4ab --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/router/index.js @@ -0,0 +1,36 @@ +/** + * router/index.ts + * + * Automatic routes for `./src/pages/*.vue` + */ + +import { setupLayouts } from 'virtual:generated-layouts' +// Composables +import { createRouter, createWebHistory } from 'vue-router/auto' +import { routes } from 'vue-router/auto-routes' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: setupLayouts(routes), +}) + +// Workaround for https://github.com/vitejs/vite/issues/11804 +router.onError((err, to) => { + if (err?.message?.includes?.('Failed to fetch dynamically imported module')) { + if (localStorage.getItem('vuetify:dynamic-reload')) { + console.error('Dynamic import error, reloading page did not fix it', err) + } else { + console.log('Reloading page to fix dynamic import error') + localStorage.setItem('vuetify:dynamic-reload', 'true') + location.assign(to.fullPath) + } + } else { + console.error(err) + } +}) + +router.isReady().then(() => { + localStorage.removeItem('vuetify:dynamic-reload') +}) + +export default router diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/services/api.js b/examples/protocols/http_server/restful_server/front/web-demo/src/services/api.js new file mode 100644 index 0000000000..a625dcb72b --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/services/api.js @@ -0,0 +1,70 @@ +/** + * API service using Alova + * + * CORS Solution: Use empty baseURL to leverage Vite proxy (no CORS issues) + * + * The Vite proxy in vite.config.mjs handles '/api' routes by forwarding them + * to the ESP32, avoiding CORS issues during development. + */ +import { createAlova } from 'alova' +import fetch from 'alova/fetch' +import VueHook from 'alova/vue' + +export const alova = createAlova({ + statesHook: VueHook, + requestAdapter: fetch(), + baseURL: '', + beforeRequest (method) { + // Minimize headers to avoid ESP32 431 error + const essentialHeaders = {} + + // Only add Content-Type for POST requests + if (method.type === 'POST') { + essentialHeaders['Content-Type'] = 'application/json' + } + + // Clear any existing headers and set only essential ones + method.config.headers = essentialHeaders + }, + responded: { + onSuccess: async response => { + if (response.status >= 400) { + throw new Error(`HTTP Error: ${response.status}`) + } + + // Check if response has content and is JSON + const contentType = response.headers.get('content-type') + if (contentType && contentType.includes('application/json')) { + return response.json() + } else { + // For non-JSON responses (like light control), return text or empty object + const text = await response.text() + console.log('Non-JSON response:', text) + return text || { success: true } + } + }, + onError: error => { + console.error('API Error:', error) + throw error + }, + }, +}) + +// API endpoints +export const systemApi = { + getInfo: () => alova.Get('/api/v1/system/info'), +} + +export const tempApi = { + getRaw: () => { + // Create a fresh request each time with timestamp to prevent caching + return alova.Get(`/api/v1/temp/raw?_t=${Date.now()}`, { + localCache: 0, // Disable local cache + hitSource: 'network', // Always fetch from network + }) + }, +} + +export const lightApi = { + setBrightness: data => alova.Post('/api/v1/light/brightness', data), +} diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/store.js b/examples/protocols/http_server/restful_server/front/web-demo/src/store.js deleted file mode 100644 index 62f44f6515..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/store.js +++ /dev/null @@ -1,28 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' -import axios from 'axios' - -Vue.use(Vuex) - -export default new Vuex.Store({ - state: { - chart_value: [8, 2, 5, 9, 5, 11, 3, 5, 10, 0, 1, 8, 2, 9, 0, 13, 10, 7, 16], - }, - mutations: { - update_chart_value(state, new_value) { - state.chart_value.push(new_value); - state.chart_value.shift(); - } - }, - actions: { - update_chart_value({ commit }) { - axios.get("/api/v1/temp/raw") - .then(data => { - commit("update_chart_value", data.data.raw); - }) - .catch(error => { - console.log(error); - }); - } - } -}) diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/stores/README.md b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/README.md new file mode 100644 index 0000000000..54f8e03b69 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/README.md @@ -0,0 +1,5 @@ +# Store + +Pinia stores are used to store reactive state and expose actions to mutate it. + +Full documentation for this feature can be found in the Official [Pinia](https://pinia.esm.dev/) repository. diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/stores/app.js b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/app.js new file mode 100644 index 0000000000..74295436ec --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/app.js @@ -0,0 +1,8 @@ +// Utilities +import { defineStore } from 'pinia' + +export const useAppStore = defineStore('app', { + state: () => ({ + // + }), +}) diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/stores/chart.js b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/chart.js new file mode 100644 index 0000000000..06eda7927f --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/chart.js @@ -0,0 +1,25 @@ +/** + * Chart data store using Pinia + */ +import { defineStore } from 'pinia' +import { ref } from 'vue' +import { tempApi } from '@/services/api' + +export const useChartStore = defineStore('chart', () => { + const chartValue = ref([8, 2, 5, 9, 5, 11, 3, 5, 10, 0, 1, 8, 2, 9, 0, 13, 10, 7, 16]) + + const updateChartValue = async () => { + try { + const response = await tempApi.getRaw().send() + chartValue.value.push(response.raw) + chartValue.value.shift() + } catch (error) { + console.error('Failed to update chart value:', error) + } + } + + return { + chartValue, + updateChartValue, + } +}) diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/stores/index.js b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/index.js new file mode 100644 index 0000000000..153625250d --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/stores/index.js @@ -0,0 +1,4 @@ +// Utilities +import { createPinia } from 'pinia' + +export default createPinia() diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/styles/README.md b/examples/protocols/http_server/restful_server/front/web-demo/src/styles/README.md new file mode 100644 index 0000000000..ea861794d6 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/styles/README.md @@ -0,0 +1,3 @@ +# Styles + +This directory is for configuring the styles of the application. diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/styles/settings.scss b/examples/protocols/http_server/restful_server/front/web-demo/src/styles/settings.scss new file mode 100644 index 0000000000..3e36a279b3 --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/src/styles/settings.scss @@ -0,0 +1,10 @@ +/** + * src/styles/settings.scss + * + * Configures SASS variables and Vuetify overwrites + */ + +// https://vuetifyjs.com/features/sass-variables/` +// @use 'vuetify/settings' with ( +// $color-pack: false +// ); diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Chart.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/views/Chart.vue deleted file mode 100644 index 7d75477cfd..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Chart.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Home.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/views/Home.vue deleted file mode 100644 index f3ab672878..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Home.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue b/examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue deleted file mode 100644 index b3742bb0da..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/src/views/Light.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/examples/protocols/http_server/restful_server/front/web-demo/vite.config.mjs b/examples/protocols/http_server/restful_server/front/web-demo/vite.config.mjs new file mode 100644 index 0000000000..819c3ff98e --- /dev/null +++ b/examples/protocols/http_server/restful_server/front/web-demo/vite.config.mjs @@ -0,0 +1,145 @@ +import { fileURLToPath, URL } from 'node:url' +import Vue from '@vitejs/plugin-vue' +// Plugins +import AutoImport from 'unplugin-auto-import/vite' +import Fonts from 'unplugin-fonts/vite' +import Components from 'unplugin-vue-components/vite' +import { VueRouterAutoImports } from 'unplugin-vue-router' +import VueRouter from 'unplugin-vue-router/vite' +// Utilities +import { defineConfig } from 'vite' + +import Layouts from 'vite-plugin-vue-layouts-next' +import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + VueRouter(), + Layouts(), + Vue({ + template: { transformAssetUrls }, + }), + // https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#readme + Vuetify({ + autoImport: true, + styles: { + configFile: 'src/styles/settings.scss', + }, + }), + Components(), + Fonts({ + google: { + families: [{ + name: 'Roboto', + styles: 'wght@100;300;400;500;700;900', + }], + }, + }), + AutoImport({ + imports: [ + 'vue', + VueRouterAutoImports, + { + pinia: ['defineStore', 'storeToRefs'], + }, + ], + eslintrc: { + enabled: true, + }, + vueTemplate: true, + }), + ], + optimizeDeps: { + exclude: [ + 'vuetify', + 'vue-router', + 'unplugin-vue-router/runtime', + 'unplugin-vue-router/data-loaders', + 'unplugin-vue-router/data-loaders/basic', + ], + }, + define: { 'process.env': {} }, + resolve: { + alias: { + '@': fileURLToPath(new URL('src', import.meta.url)), + }, + extensions: [ + '.js', + '.json', + '.jsx', + '.mjs', + '.ts', + '.tsx', + '.vue', + ], + }, + server: { + port: 3000, + // Proxy configuration to avoid CORS issues during development + // All requests to /api/* will be forwarded to the ESP32 + // IMPORTANT: Also strips large headers (especially cookies) to avoid HTTP 431 errors + proxy: { + '/api': { + target: 'http://dashboard.local', // Replace with your ESP32's actual IP + changeOrigin: true, + ws: true, + // Configure proxy to minimize headers for ESP32 compatibility + configure: (proxy, options) => { + proxy.on('proxyReq', (proxyReq, req, res) => { + // CRITICAL: Remove cookies - this is often the largest header! + proxyReq.removeHeader('cookie') + + // Remove other large/unnecessary headers that might cause 431 error + proxyReq.removeHeader('user-agent') + proxyReq.removeHeader('accept-encoding') + proxyReq.removeHeader('accept-language') + proxyReq.removeHeader('cache-control') + proxyReq.removeHeader('pragma') + proxyReq.removeHeader('referer') + proxyReq.removeHeader('origin') + proxyReq.removeHeader('sec-fetch-dest') + proxyReq.removeHeader('sec-fetch-mode') + proxyReq.removeHeader('sec-fetch-site') + proxyReq.removeHeader('sec-fetch-user') + proxyReq.removeHeader('sec-ch-ua') + proxyReq.removeHeader('sec-ch-ua-mobile') + proxyReq.removeHeader('sec-ch-ua-platform') + proxyReq.removeHeader('sec-ch-ua-full-version') + proxyReq.removeHeader('sec-ch-ua-full-version-list') + proxyReq.removeHeader('upgrade-insecure-requests') + proxyReq.removeHeader('x-requested-with') + proxyReq.removeHeader('dnt') + proxyReq.removeHeader('te') + + // Keep only absolutely essential headers + proxyReq.setHeader('host', 'dashboard.local') + proxyReq.setHeader('accept', 'application/json') + + // For POST requests, keep content-type if it exists + if (req.method === 'POST' && req.headers['content-type']) { + proxyReq.setHeader('content-type', req.headers['content-type']) + } + + const finalHeaders = proxyReq.getHeaders() + + // Log header info for monitoring ESP32 compatibility + const headerSize = Object.entries(finalHeaders) + .reduce((size, [key, value]) => size + key.length + value.length + 4, 0) + console.log(`ESP32 Request: ${req.method} ${req.url} (${Object.keys(finalHeaders).length} headers, ~${headerSize} bytes)`) + }) + }, + }, + }, + }, + css: { + preprocessorOptions: { + sass: { + api: 'modern-compiler', + }, + scss: { + api: 'modern-compiler', + }, + }, + }, +}) diff --git a/examples/protocols/http_server/restful_server/front/web-demo/vue.config.js b/examples/protocols/http_server/restful_server/front/web-demo/vue.config.js deleted file mode 100644 index 0322551512..0000000000 --- a/examples/protocols/http_server/restful_server/front/web-demo/vue.config.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - devServer: { - proxy: { - '/api': { - target: 'http://esp-home.local:80', - changeOrigin: true, - ws: true - } - } - } -} diff --git a/examples/protocols/http_server/restful_server/main/CMakeLists.txt b/examples/protocols/http_server/restful_server/main/CMakeLists.txt index fdc6a82515..8a224abc04 100644 --- a/examples/protocols/http_server/restful_server/main/CMakeLists.txt +++ b/examples/protocols/http_server/restful_server/main/CMakeLists.txt @@ -1,13 +1,13 @@ idf_component_register(SRCS "esp_rest_main.c" "rest_server.c" - PRIV_REQUIRES esp_http_server esp_driver_gpio fatfs json spiffs nvs_flash - INCLUDE_DIRS ".") + PRIV_REQUIRES esp_http_server json nvs_flash + INCLUDE_DIRS ".") -if(CONFIG_EXAMPLE_WEB_DEPLOY_SF) +if(CONFIG_EXAMPLE_DEPLOY_WEB_PAGES) set(WEB_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../front/web-demo") if(EXISTS ${WEB_SRC_DIR}/dist) - spiffs_create_partition_image(www ${WEB_SRC_DIR}/dist FLASH_IN_PROJECT) + littlefs_create_partition_image(www ${WEB_SRC_DIR}/dist FLASH_IN_PROJECT) else() - message(FATAL_ERROR "${WEB_SRC_DIR}/dist doesn't exit. Please run 'npm run build' in ${WEB_SRC_DIR}") + message(FATAL_ERROR "'${WEB_SRC_DIR}/dist' doesn't exist. Please run 'pnpm build' under '${WEB_SRC_DIR}'") endif() endif() diff --git a/examples/protocols/http_server/restful_server/main/Kconfig.projbuild b/examples/protocols/http_server/restful_server/main/Kconfig.projbuild index e184b936e2..4252949242 100644 --- a/examples/protocols/http_server/restful_server/main/Kconfig.projbuild +++ b/examples/protocols/http_server/restful_server/main/Kconfig.projbuild @@ -2,50 +2,21 @@ menu "Example Configuration" config EXAMPLE_MDNS_HOST_NAME string "mDNS Host Name" - default "esp-home" + default "dashboard" help Specify the domain name used in the mDNS service. Note that webpage also take it as a part of URL where it will send GET/POST requests to. - choice EXAMPLE_WEB_DEPLOY_MODE - prompt "Website deploy mode" - default EXAMPLE_WEB_DEPLOY_SEMIHOST - help - Select website deploy mode. - You can deploy website to host, and ESP32 will retrieve them in a semihost way (JTAG is needed). - You can deploy website to SD card or SPI flash, and ESP32 will retrieve them via SDIO/SPI interface. - Detailed operation steps are listed in the example README file. - config EXAMPLE_WEB_DEPLOY_SEMIHOST - bool "Deploy website to host (JTAG is needed)" - help - Deploy website to host. - It is recommended to choose this mode during developing. - config EXAMPLE_WEB_DEPLOY_SD - depends on IDF_TARGET_ESP32 - bool "Deploy website to SD card" - help - Deploy website to SD card. - Choose this production mode if the size of website is too large (bigger than 2MB). - config EXAMPLE_WEB_DEPLOY_SF - bool "Deploy website to SPI Nor Flash" - help - Deploy website to SPI Nor Flash. - Choose this production mode if the size of website is small (less than 2MB). - endchoice - - if EXAMPLE_WEB_DEPLOY_SEMIHOST - config EXAMPLE_HOST_PATH_TO_MOUNT - string "Host path to mount (e.g. absolute path to web dist directory)" - default "PATH-TO-WEB-DIST_DIR" - help - When using semihost in ESP32, you should specify the host path which will be mounted to VFS. - Note that only absolute path is acceptable. - endif - config EXAMPLE_WEB_MOUNT_POINT string "Website mount point in VFS" default "/www" help Specify the mount point in VFS. + config EXAMPLE_DEPLOY_WEB_PAGES + bool "Deploy web pages to device's filesystem" + default n + help + If enabled, the example will deploy web pages to the device's filesystem. + Ensure that the necessary files (html, css, js, etc.) are available in the `front/web-demo/dist` directory. endmenu diff --git a/examples/protocols/http_server/restful_server/main/esp_rest_main.c b/examples/protocols/http_server/restful_server/main/esp_rest_main.c index 5bf2e3cbe5..aa7cb00113 100644 --- a/examples/protocols/http_server/restful_server/main/esp_rest_main.c +++ b/examples/protocols/http_server/restful_server/main/esp_rest_main.c @@ -1,17 +1,11 @@ -/* HTTP Restful API Server Example +/* + * SPDX-FileCopyrightText: 2010-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: CC0-1.0 + */ - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ #include "sdkconfig.h" -#include "driver/gpio.h" -#include "esp_vfs_semihost.h" -#include "esp_vfs_fat.h" -#include "esp_spiffs.h" -#include "sdmmc_cmd.h" +#include "esp_littlefs.h" #include "nvs_flash.h" #include "esp_netif.h" #include "esp_event.h" @@ -19,24 +13,23 @@ #include "mdns.h" #include "lwip/apps/netbiosns.h" #include "protocol_examples_common.h" -#if CONFIG_EXAMPLE_WEB_DEPLOY_SD -#include "driver/sdmmc_host.h" -#endif -#define MDNS_INSTANCE "esp home web server" +#define MDNS_INSTANCE "dashboard web server" +#define MDNS_HOST_NAME CONFIG_EXAMPLE_MDNS_HOST_NAME +#define WEB_PAGE_MOUNT_POINT_IN_FS CONFIG_EXAMPLE_WEB_MOUNT_POINT -static const char *TAG = "example"; +[[maybe_unused]] static const char *TAG = "example"; -esp_err_t start_rest_server(const char *base_path); +extern esp_err_t start_rest_server(const char *base_path); static void initialise_mdns(void) { mdns_init(); - mdns_hostname_set(CONFIG_EXAMPLE_MDNS_HOST_NAME); + mdns_hostname_set(MDNS_HOST_NAME); mdns_instance_name_set(MDNS_INSTANCE); mdns_txt_item_t serviceTxtData[] = { - {"board", "esp32"}, + {"chip", CONFIG_IDF_TARGET}, {"path", "/"} }; @@ -44,84 +37,38 @@ static void initialise_mdns(void) sizeof(serviceTxtData) / sizeof(serviceTxtData[0]))); } -#if CONFIG_EXAMPLE_WEB_DEPLOY_SEMIHOST esp_err_t init_fs(void) { - esp_err_t ret = esp_vfs_semihost_register(CONFIG_EXAMPLE_WEB_MOUNT_POINT); - if (ret != ESP_OK) { - ESP_LOGE(TAG, "Failed to register semihost driver (%s)!", esp_err_to_name(ret)); - return ESP_FAIL; - } - return ESP_OK; -} -#endif - -#if CONFIG_EXAMPLE_WEB_DEPLOY_SD -esp_err_t init_fs(void) -{ - sdmmc_host_t host = SDMMC_HOST_DEFAULT(); - sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT(); - - gpio_set_pull_mode(15, GPIO_PULLUP_ONLY); // CMD - gpio_set_pull_mode(2, GPIO_PULLUP_ONLY); // D0 - gpio_set_pull_mode(4, GPIO_PULLUP_ONLY); // D1 - gpio_set_pull_mode(12, GPIO_PULLUP_ONLY); // D2 - gpio_set_pull_mode(13, GPIO_PULLUP_ONLY); // D3 - - esp_vfs_fat_sdmmc_mount_config_t mount_config = { +#if CONFIG_EXAMPLE_DEPLOY_WEB_PAGES + esp_vfs_littlefs_conf_t conf = { + .base_path = WEB_PAGE_MOUNT_POINT_IN_FS, + .partition_label = "www", .format_if_mount_failed = true, - .max_files = 4, - .allocation_unit_size = 16 * 1024 }; - - sdmmc_card_t *card; - esp_err_t ret = esp_vfs_fat_sdmmc_mount(CONFIG_EXAMPLE_WEB_MOUNT_POINT, &host, &slot_config, &mount_config, &card); - if (ret != ESP_OK) { - if (ret == ESP_FAIL) { - ESP_LOGE(TAG, "Failed to mount filesystem."); - } else { - ESP_LOGE(TAG, "Failed to initialize the card (%s)", esp_err_to_name(ret)); - } - return ESP_FAIL; - } - /* print card info if mount successfully */ - sdmmc_card_print_info(stdout, card); - return ESP_OK; -} -#endif - -#if CONFIG_EXAMPLE_WEB_DEPLOY_SF -esp_err_t init_fs(void) -{ - esp_vfs_spiffs_conf_t conf = { - .base_path = CONFIG_EXAMPLE_WEB_MOUNT_POINT, - .partition_label = NULL, - .max_files = 5, - .format_if_mount_failed = false - }; - esp_err_t ret = esp_vfs_spiffs_register(&conf); + esp_err_t ret = esp_vfs_littlefs_register(&conf); if (ret != ESP_OK) { if (ret == ESP_FAIL) { ESP_LOGE(TAG, "Failed to mount or format filesystem"); } else if (ret == ESP_ERR_NOT_FOUND) { - ESP_LOGE(TAG, "Failed to find SPIFFS partition"); + ESP_LOGE(TAG, "Failed to find LittleFS partition"); } else { - ESP_LOGE(TAG, "Failed to initialize SPIFFS (%s)", esp_err_to_name(ret)); + ESP_LOGE(TAG, "Failed to initialize LittleFS (%s)", esp_err_to_name(ret)); } return ESP_FAIL; } size_t total = 0, used = 0; - ret = esp_spiffs_info(NULL, &total, &used); + ret = esp_littlefs_info(conf.partition_label, &total, &used); if (ret != ESP_OK) { - ESP_LOGE(TAG, "Failed to get SPIFFS partition information (%s)", esp_err_to_name(ret)); + ESP_LOGE(TAG, "Failed to get LittleFS partition information (%s)", esp_err_to_name(ret)); + esp_littlefs_format(conf.partition_label); } else { ESP_LOGI(TAG, "Partition size: total: %d, used: %d", total, used); } +#endif // CONFIG_EXAMPLE_DEPLOY_WEB_PAGES return ESP_OK; } -#endif void app_main(void) { @@ -130,9 +77,9 @@ void app_main(void) ESP_ERROR_CHECK(esp_event_loop_create_default()); initialise_mdns(); netbiosns_init(); - netbiosns_set_name(CONFIG_EXAMPLE_MDNS_HOST_NAME); + netbiosns_set_name(MDNS_HOST_NAME); ESP_ERROR_CHECK(example_connect()); ESP_ERROR_CHECK(init_fs()); - ESP_ERROR_CHECK(start_rest_server(CONFIG_EXAMPLE_WEB_MOUNT_POINT)); + ESP_ERROR_CHECK(start_rest_server(WEB_PAGE_MOUNT_POINT_IN_FS)); } diff --git a/examples/protocols/http_server/restful_server/main/idf_component.yml b/examples/protocols/http_server/restful_server/main/idf_component.yml index 7bddebc1aa..fcd8e1f611 100644 --- a/examples/protocols/http_server/restful_server/main/idf_component.yml +++ b/examples/protocols/http_server/restful_server/main/idf_component.yml @@ -1,8 +1,6 @@ ## IDF Component Manager Manifest File dependencies: - espressif/mdns: "^1.0.3" - ## Required IDF version - idf: - version: ">=5.0" + espressif/mdns: "^1.8.0" + joltwallet/littlefs: "^1.20.0" protocol_examples_common: path: ${IDF_PATH}/examples/common_components/protocol_examples_common diff --git a/examples/protocols/http_server/restful_server/main/rest_server.c b/examples/protocols/http_server/restful_server/main/rest_server.c index 23f90ad83c..b5a7dd5727 100644 --- a/examples/protocols/http_server/restful_server/main/rest_server.c +++ b/examples/protocols/http_server/restful_server/main/rest_server.c @@ -1,30 +1,20 @@ -/* HTTP Restful API Server +/* + * SPDX-FileCopyrightText: 2010-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: CC0-1.0 + */ - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ #include #include #include "esp_http_server.h" #include "esp_chip_info.h" #include "esp_random.h" #include "esp_log.h" +#include "esp_check.h" #include "esp_vfs.h" #include "cJSON.h" -static const char *REST_TAG = "esp-rest"; -#define REST_CHECK(a, str, goto_tag, ...) \ - do \ - { \ - if (!(a)) \ - { \ - ESP_LOGE(REST_TAG, "%s(%d): " str, __FUNCTION__, __LINE__, ##__VA_ARGS__); \ - goto goto_tag; \ - } \ - } while (0) +static const char *TAG = "esp-rest"; #define FILE_PATH_MAX (ESP_VFS_PATH_MAX + 128) #define SCRATCH_BUFSIZE (10240) @@ -36,6 +26,7 @@ typedef struct rest_server_context { #define CHECK_FILE_EXTENSION(filename, ext) (strcasecmp(&filename[strlen(filename) - strlen(ext)], ext) == 0) +#if CONFIG_EXAMPLE_DEPLOY_WEB_PAGES /* Set HTTP response content type according to file extension */ static esp_err_t set_content_type_from_file(httpd_req_t *req, const char *filepath) { @@ -70,7 +61,7 @@ static esp_err_t rest_common_get_handler(httpd_req_t *req) } int fd = open(filepath, O_RDONLY, 0); if (fd == -1) { - ESP_LOGE(REST_TAG, "Failed to open file : %s", filepath); + ESP_LOGE(TAG, "Failed to open file : %s", filepath); /* Respond with 500 Internal Server Error */ httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Failed to read existing file"); return ESP_FAIL; @@ -84,12 +75,12 @@ static esp_err_t rest_common_get_handler(httpd_req_t *req) /* Read file in chunks into the scratch buffer */ read_bytes = read(fd, chunk, SCRATCH_BUFSIZE); if (read_bytes == -1) { - ESP_LOGE(REST_TAG, "Failed to read file : %s", filepath); + ESP_LOGE(TAG, "Failed to read file : %s", filepath); } else if (read_bytes > 0) { /* Send the buffer contents as HTTP response chunk */ if (httpd_resp_send_chunk(req, chunk, read_bytes) != ESP_OK) { close(fd); - ESP_LOGE(REST_TAG, "File sending failed!"); + ESP_LOGE(TAG, "File sending failed!"); /* Abort sending file */ httpd_resp_sendstr_chunk(req, NULL); /* Respond with 500 Internal Server Error */ @@ -100,11 +91,12 @@ static esp_err_t rest_common_get_handler(httpd_req_t *req) } while (read_bytes > 0); /* Close file after sending complete */ close(fd); - ESP_LOGI(REST_TAG, "File sending complete"); + ESP_LOGI(TAG, "File sending complete"); /* Respond with an empty chunk to signal HTTP response completion */ httpd_resp_send_chunk(req, NULL, 0); return ESP_OK; } +#endif // CONFIG_EXAMPLE_DEPLOY_WEB_PAGES /* Simple handler for light brightness control */ static esp_err_t light_brightness_post_handler(httpd_req_t *req) @@ -133,7 +125,7 @@ static esp_err_t light_brightness_post_handler(httpd_req_t *req) int red = cJSON_GetObjectItem(root, "red")->valueint; int green = cJSON_GetObjectItem(root, "green")->valueint; int blue = cJSON_GetObjectItem(root, "blue")->valueint; - ESP_LOGI(REST_TAG, "Light control: red = %d, green = %d, blue = %d", red, green, blue); + ESP_LOGI(TAG, "Light control: red = %d, green = %d, blue = %d", red, green, blue); cJSON_Delete(root); httpd_resp_sendstr(req, "Post control value successfully"); return ESP_OK; @@ -146,7 +138,8 @@ static esp_err_t system_info_get_handler(httpd_req_t *req) cJSON *root = cJSON_CreateObject(); esp_chip_info_t chip_info; esp_chip_info(&chip_info); - cJSON_AddStringToObject(root, "version", IDF_VER); + cJSON_AddStringToObject(root, "chip", CONFIG_IDF_TARGET); + cJSON_AddStringToObject(root, "idf_version", IDF_VER); cJSON_AddNumberToObject(root, "cores", chip_info.cores); const char *sys_info = cJSON_Print(root); httpd_resp_sendstr(req, sys_info); @@ -160,6 +153,7 @@ static esp_err_t temperature_data_get_handler(httpd_req_t *req) { httpd_resp_set_type(req, "application/json"); cJSON *root = cJSON_CreateObject(); + // Note: we're simulating temperature data with a random number for demonstration purposes cJSON_AddNumberToObject(root, "raw", esp_random() % 20); const char *sys_info = cJSON_Print(root); httpd_resp_sendstr(req, sys_info); @@ -170,17 +164,18 @@ static esp_err_t temperature_data_get_handler(httpd_req_t *req) esp_err_t start_rest_server(const char *base_path) { - REST_CHECK(base_path, "wrong base path", err); + esp_err_t ret = ESP_OK; + ESP_RETURN_ON_FALSE(base_path && strlen(base_path) < ESP_VFS_PATH_MAX, ESP_ERR_INVALID_ARG, TAG, "Invalid base path"); rest_server_context_t *rest_context = calloc(1, sizeof(rest_server_context_t)); - REST_CHECK(rest_context, "No memory for rest context", err); + ESP_RETURN_ON_FALSE(rest_context, ESP_ERR_NO_MEM, TAG, "No memory for rest context"); strlcpy(rest_context->base_path, base_path, sizeof(rest_context->base_path)); httpd_handle_t server = NULL; httpd_config_t config = HTTPD_DEFAULT_CONFIG(); config.uri_match_fn = httpd_uri_match_wildcard; - ESP_LOGI(REST_TAG, "Starting HTTP Server"); - REST_CHECK(httpd_start(&server, &config) == ESP_OK, "Start server failed", err_start); + ESP_LOGI(TAG, "Starting HTTP Server"); + ESP_GOTO_ON_ERROR(httpd_start(&server, &config), err, TAG, "Failed to start http server"); /* URI handler for fetching system info */ httpd_uri_t system_info_get_uri = { @@ -209,6 +204,7 @@ esp_err_t start_rest_server(const char *base_path) }; httpd_register_uri_handler(server, &light_brightness_post_uri); +#if CONFIG_EXAMPLE_DEPLOY_WEB_PAGES /* URI handler for getting web server files */ httpd_uri_t common_get_uri = { .uri = "/*", @@ -217,10 +213,12 @@ esp_err_t start_rest_server(const char *base_path) .user_ctx = rest_context }; httpd_register_uri_handler(server, &common_get_uri); +#endif // CONFIG_EXAMPLE_DEPLOY_WEB_PAGES return ESP_OK; -err_start: - free(rest_context); err: - return ESP_FAIL; + if (rest_context) { + free(rest_context); + } + return ret; } diff --git a/examples/protocols/http_server/restful_server/partitions_example.csv b/examples/protocols/http_server/restful_server/partitions_example.csv index 2ec5676bb1..3e9814c5a3 100644 --- a/examples/protocols/http_server/restful_server/partitions_example.csv +++ b/examples/protocols/http_server/restful_server/partitions_example.csv @@ -1,6 +1,5 @@ # Name, Type, SubType, Offset, Size, Flags -# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap nvs, data, nvs, 0x9000, 0x6000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 1M, -www, data, spiffs, , 2M, +www, data, littlefs, , 2M, diff --git a/examples/protocols/http_server/restful_server/sdkconfig.defaults b/examples/protocols/http_server/restful_server/sdkconfig.defaults index eb1da321ec..7bea778984 100644 --- a/examples/protocols/http_server/restful_server/sdkconfig.defaults +++ b/examples/protocols/http_server/restful_server/sdkconfig.defaults @@ -1,5 +1,3 @@ -CONFIG_SPIFFS_OBJ_NAME_LEN=64 -CONFIG_FATFS_LFN_HEAP=y CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_example.csv" diff --git a/tools/ci/check_copyright_ignore.txt b/tools/ci/check_copyright_ignore.txt index db9fa67b24..3b5b0eeedc 100644 --- a/tools/ci/check_copyright_ignore.txt +++ b/tools/ci/check_copyright_ignore.txt @@ -870,8 +870,6 @@ examples/protocols/http_server/advanced_tests/main/tests.c examples/protocols/http_server/async_handlers/main/main.c examples/protocols/http_server/captive_portal/main/main.c examples/protocols/http_server/persistent_sockets/main/main.c -examples/protocols/http_server/restful_server/main/esp_rest_main.c -examples/protocols/http_server/restful_server/main/rest_server.c examples/protocols/http_server/simple/main/main.c examples/protocols/http_server/ws_echo_server/main/ws_echo_server.c examples/protocols/https_server/simple/main/main.c