首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >自定义ASP.NET Web帮助页的“资源描述”部分

自定义ASP.NET Web帮助页的“资源描述”部分
EN

Stack Overflow用户
提问于 2015-04-19 05:54:08
回答 1查看 2.8K关注 0票数 4

我正在使用ASP.NET Web,它可以方便地为我的API自动生成文档,但其中有些没有意义。

以下面的截图为例。

这是GET用户的ID端点,在Resource Description部分,它显示了一个表,该表显示了用户模型的属性,因为我的控制器操作有[ResponseType(typeof(User))]注释。

首先,在实际的控制器操作中,为了不公开敏感信息,在向用户显示结果之前,我要去掉Password属性。因此,在Resource Description部分中给出的表是不正确的,它说我的API返回它没有返回的字段。

其次,在Additional Information列下面显示了与User模型一起的验证规则。方便,但在这种情况下根本不相关,因为这个端点是用于GET对用户,而不是POST对一个用户。

因此,我的问题是如何自定义这个Resource Description表以指定返回哪些字段,并隐藏EF验证?

目前,我已经对我的控制器操作进行了如下评论:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/// <summary>
/// Get a single user identified by ID.
/// </summary>
/// <param name="userId">The ID of the user.</param>
/// <returns>A data collection about the user.</returns>
[ResponseType(typeof(User))]
[Route("api/v1/users/{userId}", Name="GetUser")]
[HttpGet]
public IHttpActionResult GetUser(int userId)
{
    // ...
}

我已经将帮助页面配置为从一个XML文件中读取文档,该文档是在我构建项目时从这些///注释生成的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-19 10:39:21

在传统的MVC应用程序中,视图模型是从控制器返回到视图引擎的模型。在Web应用程序中,视图模型是向API使用者公开的模型。

就像现在一样,您正在使用数据模型作为视图模型。

将视图模型与数据模型分开有许多原因:

  1. 安全性:确保敏感数据(如密码)不会意外暴露。
  2. Web接口与数据库数据之间的数据差异(例如,web接口中的enum与数据库中的int )。
  3. 即使内部数据结构发生变化,也有助于确保web接口保持一致。
  4. 允许您区分GETPOST方法之间的数据。例如,某些数据可能是在POST执行时确定的,例如记录创建日期。该数据可以从GET返回,但您不希望它包含在POST中。

你已经达到了第一和第二条理由。

你的解决办法应该是:

  1. 创建一个新的类作为视图模型。现在,您有一个User数据模型类。创建一个UserViewModel类(任意命名)。
  2. 将应该公开给用户的成员添加到该类中。不要在您的案例中包括Password
  3. 在自动生成的帮助中添加适当的注释。
  4. 将数据从User类复制到UserViewModel类,并从控制器返回UserViewModel类。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29730774

复制
相关文章
asp.net web api 构建api帮助文档
1 概要 创建ASP.NET Web Api 时模板自带Help Pages框架。 2 问题 1)使用VS创建Web Api项目时,模板将Help Pages框架自动集成到其中,使得Web Api项目引入了MVC框架开发包,使得项目看起来杂乱。 2)自带的Help Pages框架无法针对Odata控制器生成API文档。 3 问题解决方案 1)独立Help Pages项目,以插件形式添加服务 步骤1,添加类ServiceAssembliesResolver,获得服务集    /// <summary>
甜橙很酸
2018/03/08
1.2K0
ASP.NET Web API RC版本新特性:Web API的帮助文档制作
InfoQ上有一篇文章是 使用IAPIExplorer列举ASP.NET Web API,文章针对的版本是ASP.NET Web API Beta版本写,IAPIExplorer已经包含在RC版本里了
张善友
2018/01/29
1K0
ASP.NET Web API RC版本新特性:Web API的帮助文档制作
【asp.net core 系列】5 布局页和静态资源的处理
在之前的4篇的内容里,我们较为详细的介绍了路由以及控制器还有视图之间的关系。也就是说,系统如何从用户的HTTP请求解析到控制器里,然后在控制器里处理数据,并返回给视图,在视图中显示出来。这一篇我将为大家介绍基础的最后一部分,布局页和静态资源引入。
程序员小高
2020/06/09
1.4K0
资源描述框架RDF
在图书馆里,每一本书都要被编目,这样才能方便查找和利用。于是,很早就有人想到,网上所有的资源也需要"编目"。 如果要对网络资源编目,首先就必须有一套"编目规则"。资源描述框架(Resource Description Framework ,简称RDF),就是一套W3C提出的描述网络资源的方法。 RDF的基本思想很简单,就是说任何网络资源都可以唯一地用URI(统一资源标识符,Uniform Resource Identifier)来表示。在这里,可以简化地将URI理解成网址URL。 比如,世界第一大网站Yah
ruanyf
2018/04/13
1.1K0
资源描述框架RDF
asp.net web api添加自定义认证
1、定义认证失败结果生成器   /// <summary> /// 认证失败结果生成器 /// </summary> public class AuthenticationFailureResult : IHttpActionResult { public AuthenticationFailureResult(string reasonPhrase, HttpRequestMessage request) { Rea
guokun
2020/09/03
1K0
asp.net web api添加自定义认证
asp.net mvc4中自定义404页面
定义 404 方法当然有很多种。不同的方法所展现的形式也不一样,用户所体验也不一样。以下提供 2 两种
chuchur
2022/10/25
5550
在文章页中显示摘要的方法 可用做文章页描述
刚刚在论坛里有人“问怎么样把添加文章时的所填的“文章摘要”的内容变为该文章的描述(即description) ”,以下是解决方法:
用户8099761
2023/05/10
8860
ASP.NET 2.0 中的异步页[来自MSDN]
ASP.NET 2.0 提供了大量新功能,其中包括声明性数据绑定和母版页,成员和角色管理服务等。但我认为最棒的功能是异步页,接下来让我告诉您其中的原因。 当 ASP.NET 接收针对页的请求时,它从线程池中提取一个线程并将请求分配给该线程。一个普通的(或同步的)页在该请求期间保留线程,从而防止该线程用于处理其他请求。如果一个同步请求成为 I/O 绑定(例如,如果它调用一个远程 Web 服务或查询一个远程数据库,并等待调用返回),那么分配给该请求的线程在调用返回之前处于挂起状态。这影响了可伸缩性,原因是线程池
菩提树下的杨过
2018/01/23
1.9K0
ASP.NET 2.0 中的异步页[来自MSDN]
asp.net生成静态页
做个生成静态页示例: 采用替换模版页的形式生成静态页 第一步:新建项目,创建一个简单模版页:TemplatePage.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Porschev
Porschev
2018/01/16
2.3K0
asp.net生成静态页
ASP.NET部分代码示例
1 using System; 2 using System.Collections.Generic; 3 using Model; 4 using System.Data; 5 using System.Data.SqlClient; 6 7 8 namespace DAL 9 { 10 /// <summary> 11 /// 发布活动信息 12 /// </summary> 13 public class Activity
用户1112962
2018/07/03
11.1K0
Bugku Web 部分WP
1.web2 听说聪明的人都能找到答案 http://123.206.87.240:8002/web2/ CTRL + u 查看源代码 2.计算器 http://12
wywwzjj
2023/05/09
5740
GCTF Web 部分writeup
准备参加某个CTF竞赛,所以找了XCTF平台上的一些题目练练。也就随手做了个记录。只做了Web题目。(⊙﹏⊙‖∣ 逆向也不会啊)
p4nda
2023/01/03
2390
GCTF Web 部分writeup
jenkins 自定义描述信息
我们在使用 Jenkins 构建的时候,有时候需要提供一个构建好的文件包的下载地址给协作者下载使用。而不是每次都点击进去 workspace 的指定位置下载。
Jimmy_is_jimmy
2023/10/22
4020
jenkins 自定义描述信息
重学ASP.NET Core 中的标记帮助程序
标记帮助程序使服务器端代码可以在 Razor 文件中参与创建和呈现 HTML 元素。 例如,内置的 ImageTagHelper 可以将版本号追加到图片名称。  每当图片发生变化时,服务器都会为图像生成一个新的唯一版本号,因此客户端总能获得当前图像(而不是过时的缓存图像)。
依乐祝
2020/06/28
2.8K0
NJCTF Web部分writeup
又到了一年一度的比赛季,这次打了打赛宁自己办的NJCTF,这里稍微整理下Web部分的wp,虽然不知道题目是谁出的,但是我觉得大部分题目还是挺蠢的…看的人从中汲取自己想要的知识就好。
LoRexxar
2023/02/21
3080
NJCTF Web部分writeup
ASP.NET 4 迁移到 ASP.NET Core 的部分改变
官方迁移链接:https://docs.asp.net/en/latest/migration/index.html 接下来是正文(会涉及到 .Net Core 的迁移): 从 Type 中获取 Attribute 特性: 原来是这样: type.GetCustomAttributes() 现在是这样: type.GetTypeInfo().GetCustomAttribute() 引用缓存: 原来是这样: 引用 System.Runtime.Caching 定义 ObjectCache cache = M
Venyo
2018/03/15
9230
CIOCP自定义帮助函数
                                                 1 客户连接列表                                                                m_pConnectionList指向客户连接列表,描述所有连接的CIOCPContext对象组成的表 AddAConnnection函数向列表中加入一个CIOCPContext对象。如果到达最大数量返回FALSE CloseAConnnection函数关闭指定的客户连
用户1154259
2018/01/17
6240
ASP.Net巧用窗体母版页
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/38865931
DannyHoo
2018/09/13
1.8K0
ASP.Net巧用窗体母版页
推荐一个工具包自定义HTTP 404错误
一个方便的工具Microsoft 的工具包--网页错误工具包,可以帮助您设计和实现自定义错误页。 网页错误工具包是点击到 IIS 的 ASP.NET 应用程序。 您修改一个 ASPX 网页的其他文件包含该工具包并将 IIS 以部署您的自定义页面。 错误页将显示搜索结果,以便访问者可以更轻松地找到正确的信息的错误。 默认,页使用 Microsoft Live 搜索引擎生成搜索结果,(尽管如果您愿意,可使用另一个搜索引擎)。 如果 URL 或搜索字符串键入了错误,页还可以提供备选拼写建议。 Micros
张善友
2018/01/22
1.4K0
跨域资源共享(CORS)在ASP.NET Web API中是如何实现的?
在《通过扩展让ASP.NET Web API支持W3C的CORS规范》中,我们通过自定义的HttpMessageHandler自行为ASP.NET Web API实现了针对CORS的支持,实际上ASP.NET Web API自身也是这么做的,该自定义HttpMessageHandler就是System.Web.Http.Cors.CorsMessageHandler。 1: public class CorsMessageHandler : DelegatingHandler 2: {
蒋金楠
2018/01/15
2.5K0
跨域资源共享(CORS)在ASP.NET Web API中是如何实现的?

相似问题

Web帮助页上的资源描述显示“无”。

23

如何将“资源描述”部分添加到Azure Mobile Services Web API帮助页

10

ASP.NET Web帮助页上的空模型属性描述

29

ASP.NET Web自定义帮助页

37

ASP.NET web.api帮助页没有显示任何描述

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文