首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

01、ADS使用记录之新建工程

  • 23-12-09 10:21
  • 3083
  • 5783
blog.csdn.net

01、ADS使用记录之新建工程

硕士学电磁场去了,写点博客记录下学习过程。
参考的书籍是卢益锋老师的ADS射频电路设计与仿真学习笔记,自己跟着学习一下。
Advanced Design System,简称ADS,和HFSS并为电磁学两大常用软件。
基于ADS2021

1、新建工作区

选择File->New->Workspace新建工作区。
在这里插入图片描述
点击后出现如下界面,其中第一行为工作区名字,第二行为工作区路径(在此注意,工作区名字和路径都不能含有中文):
在这里插入图片描述
此处设置工作区名字为MyWorkspace_csdn:
在这里插入图片描述
点击Create Workspace创建工作区,创建完成界面如下:
在这里插入图片描述

2、新建原理图

对于任何一个仿真软件来说,电路图至关重要,选择以下的选项新建原理图:
在这里插入图片描述
我们可以使用默认的名字,点击Create Schematic进行创建:
在这里插入图片描述
创建完成后出现如下的原理图绘制界面:
在这里插入图片描述

3、新建PCB图

与原理图相比,PCB图更加接近实际,按照如下的操作新建PCB图:
在这里插入图片描述
出现如下的界面:
在这里插入图片描述
在此我们可以不使用默认的设置,我们将Layout与原理图创建进同一个cell中,点击cell后面的三个小点并选择cell_1:
在这里插入图片描述
在这里插入图片描述
完成后点击创建即可,会出现如下界面:
在这里插入图片描述
选择默认的即可,点击next后点击finish:
在这里插入图片描述
到此创建完成!

u=726504413,3544569292&fm=253&fmt=auto&app=138&f=JPEG.webp

1. 什么是 API 设计?

API(应用程序编程接口)允许两个软件系统相互通信。API 设计指的是构建客户端(应用程序、用户、服务)请求和接收数据的方式。良好的 API 设计对于可扩展性、可用性、安全性以及未来的发展至关重要。

2. API 设计的基本原则

“优秀的 API 设计遵循简洁性、清晰性、一致性和可预测性原则。”

四大关键原则:

  • 简洁性:让 API 直观且尽量精简。
  • 一致性:保持统一的命名、模式和规范。
  • 清晰性:使 API 易于阅读且能够自我解释。
  • 可预测性:客户端应能根据 API 的结构预测其行为。

3. 理解 REST 原则(核心基础)

REST(表述性状态转移)是现代 API 最常用的架构。

它依靠标准的 HTTP 方法与资源进行交互。

关键概念:

术语含义
资源对象(例如,用户、订单、产品)
端点可访问资源的 URL
HTTP 方法GET、POST、PUT、PATCH、DELETE
无状态每个请求都必须包含所需的所有信息

常见的 REST HTTP 方法:

方法用途
GET检索数据
POST创建新资源
PUT更新(替换)现有资源
PATCH部分更新资源
DELETE删除资源

提示:API 应该操作资源,而不是操作行为。

不良示例:

POST /createUser

良好示例:

POST /users

4. API 版本控制(为未来做准备)

设计 API 时绝不能不考虑版本控制。

它使你能够在不影响现有客户端的情况下更新 API。

常见的版本控制策略:

策略示例
URL 版本控制GET /api/v1/users
头部版本控制Accept: application/vnd.api.v1+json
查询参数/api/users?version=1

最佳实践:使用 URL 版本控制。它清晰、简单,并且对缓存友好。

5. URL 设计最佳实践(清晰一致)

你的 URL 应该清楚地表明它所提供的内容。

规则:

  • 使用名词,而不是动词:/users,/orders

  • 使用复数名词:/products 而不是 /product

  • 逻辑嵌套:/users/{userId}/orders

  • 使用连字符而不是下划线:/user-profile

  • URL 保持小写

示例:

用途URL
列出所有用户GET /api/v1/users
检索单个用户GET /api/v1/users/{userId}
创建新用户POST /api/v1/users
更新用户PUT /api/v1/users/{userId}
删除用户DELETE /api/v1/users/{userId}

6. API 文档标准(清晰沟通)

没有文档的 API 是无用的 API。

良好的文档能让开发人员在使用你的 API 时不产生困惑。

专业文档工具:

  • OpenAPI 规范(Swagger)—— 行业标准

  • Postman API 文档

  • Redoc

最低文档要求:

  • API 端点

  • 请求 / 响应示例

  • 状态码和错误响应

  • 身份验证要求

  • 数据模式(字段、类型、描述)

📄 示例:专业 API 文档模板

yaml
代码解读
复制代码
openapi: 3.0.0 info: title: 用户管理 API version: 1.0.0 description: 用于管理用户的 RESTful API。 servers: - url: https://api.example.com/v1 paths: /users: get: summary: 获取所有用户 responses: '200': description: 成功响应 post: summary: 创建用户 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/User' responses: '201': description: 用户已创建 /users/{id}: get: summary: 根据 ID 获取用户 parameters: - in: path name: id required: true schema: type: string responses: '200': description: 成功响应 components: schemas: User: type: object properties: id: type: string name: type: string email: type: string

💡 Swagger UI 可以根据这个 YAML 文件自动生成实时 API 演示环境。

7. 请求验证(保护你的服务器)

永远不要信任用户输入。

在处理请求之前,始终要进行验证。

验证内容:

  • 必填字段

  • 字段类型

  • 字段长度

  • 格式(如电子邮件、电话号码等)

验证示例:

javascript
代码解读
复制代码
if (!req.body.email ||!validator.isEmail(req.body.email)) { return res.status(400).json({ error: '无效的电子邮件' }); }

专业提示:

使用像 Joi、Zod 或 express-validator 这样的库来实现自动化验证。

8. 响应优化(提供快速且轻量的响应)

请记住:

最好的 API 是快速、简洁且可预测的。

最佳实践:

  • 只发送必要的字段(避免庞大的负载)。

  • 对大型列表进行分页。

  • 压缩响应(使用 Gzip)。

  • 尽可能使用缓存(例如,ETag 头部)。

  • 发送适当的状态码。

分页示例:

GET /api/v1/users?page=2&limit=50

9. 错误处理(专业且标准化)

优秀的 API 会以可预测且信息丰富的方式处理失败情况。

关键实践:

  • 始终发送有意义的错误消息。

  • 始终发送正确的 HTTP 状态码。

  • 使用标准的错误响应结构。

标准错误格式:

json
代码解读
复制代码
{ "error": { "code": "INVALID_EMAIL", "message": "电子邮件地址无效。" } }

⚡ 不良与良好 API 实践的快速对比

❌ 不良实践✅ 良好实践
POST /createUserPOST /api/v1/users
未进行分页就发送完整的用户数据库对大型响应进行分页
模糊的错误消息 “出了点问题”清晰的错误信息,如 “USER_NOT_FOUND”
URL 中没有版本控制/api/v1/users 用于清晰的版本控制

🔥 遵循最佳实践的 Express.js REST API 实用示例

javascript
代码解读
复制代码
const express = require('express'); const { body, validationResult } = require('express-validator'); const app = express(); app.use(express.json()); const users = []; // 内存存储 // 获取所有用户 app.get('/api/v1/users', (req, res) => { res.json({ data: users }); }); // 创建用户 app.post('/api/v1/users', body('email').isEmail(), body('name').notEmpty(), (req, res) => { const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(400).json({ error: errors.array() }); } const newUser = { id: users.length + 1, ...req.body }; users.push(newUser); res.status(201).json({ data: newUser }); } ); // 错误处理程序 app.use((err, req, res, next) => { console.error(err.stack); res.status(500).json({ error: '内部服务器错误' }); }); app.listen(3000, () => console.log('服务器在 3000 端口运行'));

10. API 设计的进阶主题

进阶特性用途
速率限制通过限制每分钟的请求数来防止滥用
身份验证使用 JWT、OAuth2、API 密钥来保障 API 的安全
授权控制谁可以访问哪些内容
HATEOAS用于导航资源的超媒体链接
缓存通过客户端 / 服务器缓存提高性能
Webhooks向外部系统发送事件驱动的更新
API 网关集中管理、监控和保障 API 的安全

🎯 结论
API 设计不仅仅是一项技术技能;它更是一种沟通方式。

一个清晰、强大的 API 既能满足当下用户的需求,又能为未来的开发人员赋能。

永远记住:

构建 API 就如同起草一部宪法 —— 它必须稳定、灵活且清晰。

注:本文转载自blog.csdn.net的怡步晓心l的文章"https://blog.csdn.net/weixin_44584198/article/details/121285676"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top