华为手机中checkrest 批量删除updat什么意思?能删除吗

扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
问几个英语词组check sth with sbcopy down homework/problem wronglydevelop the student mind the rest numbers的中文解释是什么?能全写最好,不行的话能翻几个是几个~
扫二维码下载作业帮
1.75亿学生的选择
与某人一起检查某物错误的抄下了作业、问题发展学生的思想剩余数字
为您推荐:
其他类似问题
扫描下载二维码微软在WCF 3.5中就通过提供基于Web HTTP的编程模式使我们很容易地创建基于REST的服务,WCF 4.0中对此进行了较大的改进。为了让读者对REST在WCF中的应用有一个大致的了解,我们先来进行一个简单的实例演示。 [源代码从下载]
一、定义服务契约
在这个实例中,我们创建一个简单的服务来管理员工的基本信息。至于实例程序的结构,我们依然采用熟悉的包含三个项目(Service.Interface、Service和Client)的解决方案。如下所示的是定义在Service.Interface中用于表示员工的Employee类的定义,它是一个数据契约。
1: [DataContract(Namespace="/")]
2: public class Employee
[DataMember]
public string Id { }
[DataMember]
public string Name { }
[DataMember]
public string Department { }
[DataMember]
public string Grade { }
public override string ToString()
return string.Format("ID: {0,-5}姓名: {1, -5}级别: {2, -4} 部门: {3}",Id, Name, Grade, Department);
接下来我们定义了如下一个表示服务契约的接口IEmployeesService。和基于SOAP的服务契约定义不同,我们无需在相应的操作方法上面应用OperationContractAttribute特性,但是应用在接口/类上的ServiceContractAttribute特性仍是必需的。在这里替换OperationContractAttribute特性的分别是和,它们均定义在System.ServiceModel.Web程序集中。
1: [ServiceContract(Namespace="/")]
2: public interface IEmployees
[WebGet(UriTemplate = "all")]
IEnumerable&Employee& GetAll();
[WebGet(UriTemplate = "{id}")]
Employee Get(string id);
[WebInvoke(UriTemplate = "/", Method = "POST")]
void Create(Employee employee);
[WebInvoke(UriTemplate = "/", Method = "PUT")]
void Update(Employee employee);
[WebInvoke(UriTemplate = "{id}", Method = "DELETE")]
void Delete(string id);
契约接口IEmployeesService中定义了5个操作,分别用于实现针对员工数据的获取、添加、修改和删除。按照REST设计原则,我们将被操作的员工信息体现为某种网络资源,而操作类型最好与相应的HTTP方法相匹配。在操作方法中针对资源的操作类型与HTTP方法之间的匹配是通过应用在它们上面的WebGetAttribute和WebInvokeAttribute特性来体现。
WebGetAttribute针对GET方法,而其他的HTTP方法则通过WebInvokeAttribute的Method属性来体现。在IEmployeesService中,两个用于获取员工信息GetAll和Get方法均应用了WebGetAttribute特性,而其他的Create、Update和Delete方法在应用了WebInvokeAttribute特性,并且其Method属性被分别设置为PUT、POST和DELETE。
WebGetAttribute和WebInvokeAttribute和均具有相同的属性UriTemplate,该属性用于定义作为最终操作URI的模板。我们不仅可以通过UriTemplate属性为操作指定一个相对于终结点地址的静态路径,还可以通过占位符实现路径中的动态部分与参数之间的映射。
同样以定义在契约接口IEmployeesService中的5个操作方法为例,如果终结点地址为http://127.0.0.1:3721/employees,由于用于返回所有员工列表的GetAll操作的UriTemplate被设置“All”,所以其地址为http://127.0.0.1:3721/employees。用于返回指定员工ID的Get操作的UriTemplate被设置成“{id}”,意味着我们直接在表示请求地址的URI中指定员工的ID,而它会自动映射为该操作方法的参数id。用于删除某个指定员工的Delete操作具有相同的UriTemplate设置,而用于创建添加新员工和修改现有员工信息的Create和Update操作,由于作为参数的Employee对象具有ID属性,所以直接采用终结点地址。
二、创建/寄宿服务
在控制台程序Service中我们定义了如下一个实现了契约接口IEmployeesService的服务类型EmployeesService。简单 起见,我们直接通过一个静态字段employees表示存储的员工列表,该静态字段在初始化的工作中被添加了两个ID分别为001和002的Employee对象。针对员工信息的获取、添加、修改和删除的操作均在此列表中进行。
1: public class EmployeesService : IEmployees
private static IList&Employee& employees = new List&Employee&
new Employee{ Id = "001", Name="张三", Department="开发部", Grade = "G7"},
new Employee{ Id = "002", Name="李四", Department="人事部", Grade = "G6"}
public Employee Get(string id)
Employee employee = employees.FirstOrDefault(e =& e.Id == id);
if (null == employee)
WebOperationContext.Current.OutgoingResponse.StatusCode =
HttpStatusCode.NotF
public void Create(Employee employee)
employees.Add(employee);
public void Update(Employee employee)
this.Delete(employee.Id);
employees.Add(employee);
public void Delete(string id)
Employee employee = this.Get(id);
if (null != employee)
employees.Remove(employee);
public IEnumerable&Employee& GetAll()
值得一提的是,不论是用于获取某个指定ID的员工信息的Get方法,还是用于修改和删除员工记录的Update和Delete方法,当指定ID的员工不存在时都通过表示当前Web操作上下文的对象将回复状态设置为NotFound(即404 Not Found),这体现了我们的服务是基于Web的。
接下来我们通过自我寄宿的方式对上面定义的EmployeesService服务进行寄宿,下面是相应的配置。我们为寄宿的服务添加了唯一一个终结点,并简单地指定了其ABC三要素。和我们之前配置的终结点不同的是,在这里我们采用的绑定类型为WebHttpBinding。
1: &configuration&
&system.serviceModel&
&services&
&service name="Artech.WcfServices.Service.EmployeesService"&
&endpoint address="http://127.0.0.1:3721/employees"
binding="webHttpBinding"
contract="Artech.WcfServices.Service.Interface.IEmployees"/&
&/service&
&/services&
&/system.serviceModel&
11: &/configuration&
最终我们通过如下的程序进行服务的寄宿。之前我们总是使用基于服务类型创建的ServiceHost进行服务寄宿,在这里我们使用的是ServiceHost它的子类。
1: using (WebServiceHost host = new WebServiceHost(typeof(EmployeesService)))
host.Open();
Console.Read();
三、进行服务调用
由于我们寄宿的服务完全是基于Web的,所以和普通的Web站点没有本质的区别。由于EmployeesService服务的GetAll和Get操作支持HTTP-GET请求,所以我们完全可以在浏览器中针对操作的地址发起请求,而返回的数据可以直接显示在浏览器上。下图所示的是通过浏览器调用GetAll操作()得到的结果,我们可以看到所有员工的列表以XML的形式返回。
我们也可以通过浏览器调用Get操作并直接通过在地址中指定员工的ID()并得到以XML表示的基于相应员工的信息。下图所示XML正式ID为001的Employee对象序列化后的结果。如果在请求地址中指定一个不存在的ID(比如),由于Get方法中指定了回复状态为NotFound,我们会得到类似于访问资源不存在的错误信息,就像访问一个不存在的Web页面一样。
上面我们演示了通过浏览器以HTTP-GET方式请求操作地址的方式从而直接将返回结果呈现出来,现在我们来演示如何使用通过ChannelFactory&TChannel&创建的服务代理进行服务调用。我们首先在作为客户端应用程序的Client项目中创建一个App.config,并定义如下的配置。
1: &configuration&
&system.serviceModel&
&behaviors&
&endpointBehaviors&
&behavior name="webBehavior"&
&webHttp /&
&/behavior&
&/endpointBehaviors&
&/behaviors&
&endpoint name="employeeService"
address="http://127.0.0.1:3721/employees"
behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="Artech.WcfServices.Service.Interface.IEmployees"/&
&/system.serviceModel&
18: &/configuration&
如上面的配置片断所示,我们定义了一个与服务端相匹配的客户端终结点,该终结点上应用了一个WebHttpBehavior终结点行为。WebHttpBehavior可以说是整个Web HTTP编程模型的核心,绝大部分针对Web的支持都是通过该行为实现的。实际上服务端终结点通过WebServiceHost应用了这个终结点行为。
1: using(ChannelFactory&IEmployees& channelFactory = new ChannelFactory&IEmployees&("employeeService"))
IEmployees proxy = channelFactory.CreateChannel();
Console.WriteLine("所有员工列表:");
Array.ForEach&Employee&(proxy.GetAll().ToArray(),employee=&Console.WriteLine(employee));
Console.WriteLine("\n添加一个新员工(003):");
proxy.Create(new Employee
Department
= "行政部"
Array.ForEach&Employee&(proxy.GetAll().ToArray(),employee =& Console.WriteLine(employee));
Console.WriteLine("\n修改员工(003)信息:");
proxy.Update(new Employee
Department
= "销售部"
Array.ForEach&Employee&(proxy.GetAll().ToArray(), employee =& Console.WriteLine(employee));
Console.WriteLine("\n删除员工(003)信息:");
proxy.Delete("003");
Array.ForEach&Employee&(proxy.GetAll().ToArray(), employee =& Console.WriteLine(employee));
服务调用程序如上所示,我们模拟了员工的添加、修改和删除。程序之后会在客户端控制台产生如下的输出。
所有员工列表:
1: 所有员工列表:
2: ID: 001
姓名: 张三
部门: 开发部
3: ID: 002
姓名: 李四
部门: 人事部
5: 添加一个新员工(003):
6: ID: 001
姓名: 张三
部门: 开发部
7: ID: 002
姓名: 李四
部门: 人事部
8: ID: 003
姓名: 王五
部门: 行政部
10: 修改员工(003)信息:
11: ID: 001
姓名: 张三
部门: 开发部
12: ID: 002
姓名: 李四
部门: 人事部
13: ID: 003
姓名: 王五
部门: 销售部
15: 删除员工(003)信息:
16: ID: 001
姓名: 张三
部门: 开发部
17: ID: 002
姓名: 李四
部门: 人事部
从编程角度来看,我们采用与SOAP服务完全一样的服务调用方式,那么如何反映出服务调用基于Web的本质呢?首先,之前我们能够通过浏览器访问GetAll和Get两个操作可以证明这两个服务操作是基于HTTP-GET的,返回的数据直接以单纯的XML返回,并没有封装成SOAP。为了证明Create、Update和Delete也是完全基于Web的,我们可以通过Fiddler来分析HTTP请求的内容。
如下所示的三段XML片断分别对应着针对上述三个服务操作调用的HTTP请求消息,从这我们可以看出它们就是单纯的针对PUT、POST和DELETE方法的HTTP请求,而传输给服务端的数据直接作为消息的主体,并没有封装成SOAP消息。
1: Create:
2: PUT http://jinnan-pc:3721/employees/ HTTP/1.1
3: Content-Type: application/ charset=utf-8
4: Host: jinnan-pc:3721
5: Content-Length: 187
6: Expect: 100-continue
7: Accept-Encoding: gzip, deflate
9: &Employee xmlns="/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&&Department&销售部&/Department&&Grade&G11&/Grade&&Id&003&/Id&&Name&王五&/Name&&/Employee&
11: Update:
12: POST http://jinnan-pc:3721/employees/ HTTP/1.1
13: Content-Type: application/ charset=utf-8
14: Host: jinnan-pc:3721
15: Content-Length: 186
16: Expect: 100-continue
17: Accept-Encoding: gzip, deflate
19: &Employee xmlns="/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"&&Department&行政部&/Department&&Grade&G9&/Grade&&Id&003&/Id&&Name&王五&/Name&&/Employee&
21: Delete:
22: DELETE http://jinnan-pc:3721/employees/003 HTTP/1.1
23: Content-Type: application/ charset=utf-8
24: Host: jinnan-pc:3721
25: Content-Length: 80
26: Expect: 100-continue
27: Accept-Encoding: gzip, deflate
阅读(...) 评论()讨论的人很多,说明RESTful API也开始在.NET 社区中得到重视,其中的回复有很多对REST不正确的观点。(REpresentational State Transfer)的概念提出已超过10年,不知不觉间已成当今设计开放式API的主流。或许大家手边的.NET系统整合都还是使用WCF(甚至Web Service)进行跨主机沟通,但是当微软在ASP.NET MVC 4 Beta里也开始REST架构的。如果没有先了解 RESTful,那接下去的内容还真有点硬,像是专业名词,例如,你在 ASP.NET Web API 文件中可以看到大量的 Resource (资源) 这个单字,URI 我还能理解,跟 Resource 有什么关系?
关于REST及RESTful的概念,已有不少文章介绍,这里整理几篇我觉得不错的参考:
维基百科的定义:
REST理论的中文详述,其中你可以了解到WCF Restful属于RPC 样式的 Web 服务,ASP.NET Web API属于RESTful Web 服务。
InfoQ的专文介绍,文中甚至有Roy T. Fielding当年REST博士论文的中文翻译链接。另外值得一提的,大家可能没听过的大名,但如果得知他是HTTP规格的主要作者及Apache HTTP Server项目的发起人之一,应该不会有人怀疑他在Web技术领域的分量。
上面的文章建议大家认真的读一下,这里我们简要的介绍下REST 做入门介绍,理解整个 REST 能让我们在 ASP.NET Web API 的路上更顺畅。
REST是什么?
REST ( REpresentational State Transfer ),State Transfer 为 "状态传输" 或 "状态转移 ",Representational 中文有人翻译为"表征"、"具象",合起来就是 "表征状态传输" 或 "具象状态传输" 或 "表述性状态转移",不过,一般文章或技术文件都比较不会使用翻译后的中文来撰写,而是直接引用 REST 或 RESTful 来代表,因为 REST 一整个观念,想要只用六个中文字来完整表达真有难度。
REST 一词的出于《 》论文,我们先简单从标题来看,它应该是一种架构样式 (Architectural Styles) 与软件架构 (Software Architectures),而且是以网络 (Network-based) 为基础,重点就是:
架构样式 (Architectural Styles)
软件架构 (Software Architectures)
网络 (Network-based) 为基础
REST 本身是设计风格而不是标准。REST 谈论一件非常重要的事,如何正确地使用 Web标准,例如,HTTP 和 。想要了解 REST 最好的方式就是思索与了解 Web 及其工作方式。如果你设计的应用程序能符合 REST 原则 (REST principles),这些符合 REST 原则的 REST 服务可称为 "RESTful web service" 也称 "RESTful Web API"。"-ful" 字尾强调它们的设计完全符合 REST 论文里的建议内容。
资源 RESOURCE
在 REST 中的资源 (Resource) 代表整个网络上的资源。网络上提供了各式各样的资源,而网络上的资源由 URI (统一资源标识符,Uniform Resource Identifier) 来提供。 回想,你如何连上我的 博客,你可能通过浏览器直接输入&
此域名来到达首页,也能用书签或网络上的链接,经点击后来连上我的博客。然后,你想看这一篇名为「REST 入门介绍」的文章,所以以你接下去点击这文章的标题连结,接去下阅读。我们简易了解一下整个流程:
通过URL ( /shanyou ) , Client 向 /shanyou 发出请求
</shanyou 收到请求,回应首页给 Client
Client 又点击 REST 文章连结& (假设是 ) 向 发出& 此篇文章的请求
</shanyou& 收到请求,响应 REST 文章内容给 Client
Client 的通过 URI 来获取资源的具体象征 (Representational)。Client 取得这些具体象征使这些应用程序转变其状态 (以 浏览器而言,取得 HTML、CSS、JavaScript & 来生成界面),随着不断取得资源的具体象征, Client 端不断地改变其状态,这样不断的反复 (iterations ) 过程就是所谓的 Representational State Transfer。
使用 WEB 标准
上述是最接近日常的范例,这些行为在 HTTP 规范中称之为 GET,也就是通过URL 来 GET 我想要的资源。另一常用的例子是填写表单,例如,登入表单,我想进行登入动作,就必须先发送账号与密码给某一资源,此资源会验证你所传送的数据是否正确,再进行后续动作。我们发送信息给资源的行为在 HTTP 规范中称之为 POST。 在 第 5.1.1 Method 一节定义了八大类 HTTP 方法,除了我们常用的 GET 与 POST 之外,在 REST 中常用的还有 PUT 与 DELETE。此 GET, POST, PUT, DELETE 正好可以对应我们 CRUD (Create, Read, Update, Delete) 四种数据操作。
HTTP Method 与 CURD 数据处理操作对应
新增一个没有id的资源
取得一个资源
更新一个资源。或新增一个含 id 资源(如果 id 不存在)
删除一个资源
RESTFUL WEB SERVICE
RESTful Web Service (又称 RESTful Web API) 是一个使用 HTTP 并符合 REST 原则的 Web 服务。我们知道,通过 URL 可以传送 GET 请求,在 表单指定 method="GET|POST" 来送出请求。但我们要处理 PUT 或 DELETE 的请求呢?通过 RESTful 我们可以简单 URI 来定义资源并和 HTTP 方法配合使用。
Resource 与 HTTP 方法的对应
/Products/
Products是一组资源集合
列出 该组资源集合中每个资源的详细信息
更新 当前整组资源
新增 或附加一个新资源。该操作传回新资源的URL
删除 整组资源
/Products/1
Products/1是单个资源
取得 指定的资源的详细信息
更新 或新增指定的资源
新增 或附加一个新元素
删除 指定的元素
以上表格有没有很像我们一般在对数据库表格的操作顺序,进入一个 Table 的数据首页 (通常是列表),此页面会有「新增、更新、删除、详细」等连结,你想进行什么操作,就点那一个连结。 在 RESTful 每个资源有自己独立的 URI, Client 从资源集合或单个资源开始进入,不管是资源集合或单个资源,我们都能与 HTTP 方法配合使用,例如,GET 下载,PUT 更新,POST 新增,DELETE 删除。
是一个框架(framework),能让你在 .NET Framwork 之上架设 HTTP 服务 (HTTP Services)。ASP.NET Web API 是 .NET Framework 上构建
应用程序的理想平台。
在 Julie Lerman's 的
一文中,用了一张图来简明说明 Web API:
阅读(...) 评论()}

我要回帖

更多关于 hbase rest批量删除 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信