《PHP精粹:编写高效PHP代码》——3.5节设计一个Web服务

简介: 本节书摘来自华章社区《PHP精粹:编写高效PHP代码》一书中的第3章,第3.5节设计一个Web服务,作者:(美)  Davey Shafik,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.5 设计一个Web服务
当你创建一个Web服务时有一些关键点你必须牢记。本节将贯穿创建一个高效实用的服务时需要关注的要点。
首先要决定你将采用哪种服务形式,如果你的服务和表述数据结合很紧密,你可能会选择RESTful服务。对于计算机之间的数据交换,你可能选择XML-RPC或SOAP,特别是在你确信SOAP已被人们透彻理解的企业环境下。当我们从JavaScript传输异步请求或者传输数据到移动设备时,JSON也许是一个更好的选择。
当你使用Web服务时,要始终牢记用户总会将一些毫无意义的内容传入服务中,这并不是说用户都是白痴,但有时候我们会误解(或忽略)这个提示,或者犯明显的错误。这种情况下服务如何响应是衡量它好坏的标准。一个健壮性和可靠的服务将对非破坏性的失败做出反应,而且把在哪里发生错误的信息反馈给用户。在我们讲完该主题准备向前继续时,要做的最重要一点是:错误消息应该以同样的格式返回,如同一个成功的输出将会到达。
有一个设计原则我们称其为KISS(Keep It Simple, Stupid, 保持简单、无趣),就API设计而论少即是多。要当心避免创建一个广泛的、不规则的、不稳定的API。只有我们真正需要的时候才添加功能,并且要确保新功能和其他API实现的方式保持一致。
一个Web服务直到交付相关文档它才算完整。没有文档,用户很难使用你的服务,其中很多都不会使用。好的文档将消除障碍,并允许用户在你暴露的功能上建立属于自己的精彩内容。
归根结底,暴露一个API,不是从内部就是作为一个面向服务内容结构的一部分,都是关于增强他人的能力和信心使用有效信息的内容。无论这个“他人”指软件还是指人、内部还是外部,这个基本目标不会改变。Web服务和Web应用程序的基础都是相同的,另外本章中所涉及的一些特定方面和技能也都是相同的。

相关文章
|
26天前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
29 0
|
26天前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之做的web服务计费如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
329 3
|
1月前
|
JSON API 数据库
解释如何在 Python 中实现 Web 服务(RESTful API)。
解释如何在 Python 中实现 Web 服务(RESTful API)。
24 0
|
1月前
|
负载均衡 Java 中间件
使用Go语言构建高性能Web服务
Go语言作为一种快速、高效的编程语言,其在构建高性能Web服务方面具有独特优势。本文将探讨如何利用Go语言开发和优化Web服务,以实现更高的性能和可伸缩性。
|
2月前
|
Arthas 监控 NoSQL
web服务性能监控方案
web服务性能监控方案
拿php写个原生增删改查案例出来(提供全部代码+sql)
拿php写个原生增删改查案例出来(提供全部代码+sql)
拿php写个原生增删改查案例出来(提供全部代码+sql)
|
4天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
17天前
|
数据采集 Java API
python并发编程: Python使用线程池在Web服务中实现加速
python并发编程: Python使用线程池在Web服务中实现加速
17 3
python并发编程: Python使用线程池在Web服务中实现加速
|
30天前
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
7 0
|
1月前
|
PHP 开发者 UED
PHP 中的异常处理:提高代码健壮性的关键
【2月更文挑战第28天】在 PHP 开发中,异常处理是确保应用程序稳定性和可靠性的重要环节。本文将深入探讨 PHP 异常的概念、类型及其处理机制,并通过实例演示如何有效地捕获和处理异常,以增强代码的健壮性和用户体验。