littlebot
Published on 2025-04-18 / 2 Visits
0

【源码】基于C语言的嵌入式RESTful API系统

项目简介

本项目是基于C语言和ulfius框架构建的嵌入式RESTful API系统,实现了一个可管理用户信息并处理气象卫星数据的简单HTTP服务器。借助ulfius框架处理HTTP请求与响应,通过SystemD管理服务生命周期。该系统具备用户管理和文件下载功能,适用于嵌入式系统的远程访问和管理。

项目的主要特性和功能

  1. 用户管理:可通过HTTP POST请求创建新用户,支持用户SSH登录;也能通过HTTP GET请求获取所有用户信息。
  2. 文件下载服务:提供气象卫星数据下载功能,支持从AWS S3服务下载文件。若文件已存在,返回现有文件下载链接;若不存在,后台下载后返回链接。
  3. 日志记录:所有用户操作和文件下载请求会记录到日志,日志格式为:<Timestamp> | <Nombre Del Servicio> | <Mensaje>
  4. 安全性:使用Nginx作为反向代理处理HTTP请求并进行用户认证,所有请求需用户名和密码认证。
  5. 服务管理:使用SystemD管理服务的启动、停止、重启和自动启动。

安装使用步骤

环境准备

确保系统安装了GCC编译器、make工具、SystemD和Nginx,同时安装ulfius框架及其依赖库。

编译项目

使用提供的Makefile进行编译: sh make

配置服务

将生成的SystemD服务文件复制到/etc/systemd/system/目录下,配置Nginx反向代理,确保请求能正确转发到相应服务。

启动服务

启动SystemD服务: sh sudo systemctl start user_service sudo systemctl start download_service 设置服务开机自启动: sh sudo systemctl enable user_service sudo systemctl enable download_service

测试API

使用curl或Postman等工具测试API端点,示例如下: - 创建用户: sh curl --request POST \ --url http://localhost/api/users \ -u USER:SECRET \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{"username": "myuser", "password": "mypassword"}' - 获取用户列表: sh curl --request GET \ --url http://localhost/api/users \ -u USER:SECRET \ --header 'accept: application/json' \ --header 'content-type: application/json' - 下载气象数据: sh curl --request POST \ --url http://localhost/api/servers/get_goes \ -u USER:SECRET \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{"product": "OR_ABI-L2-MCMIPF", "datetime": "Y%m%d%h"}'

查看日志

日志文件位于/var/log/目录下,可通过以下命令查看: sh cat /var/log/user_service.log cat /var/log/download_service.log

注意事项

  • 本项目仅使用HTTP协议,存在安全隐患,建议在生产环境中使用HTTPS。
  • 确保在运行服务前拥有足够的权限,并根据实际情况调整配置文件。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】