首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP中API的最佳实践:函数还是类?

PHP中API的最佳实践:函数还是类?
EN

Stack Overflow用户
提问于 2010-02-18 16:26:34
回答 4查看 2.3K关注 0票数 3

在我的公司,我们开发了一些应用程序。我们必须为一个应用程序(比如应用程序A)创建一个API,以便其他应用程序可以使用它(一个its数据)。

问题是:我们已经为应用程序A的模型开发了PHP类,如果我们想要创建一个API,我们应该:

PHP

  • 重用这些类(对于API来说功能太多了,heavy...)

  • create one PHP class也有一些基本的函数,它接受输入并只返回原始值(如字符串、数组……不复杂classes)

  • create另一组类,更简单,仅设计为供外部应用程序使用(因此,仅用于轻松获取数据)

通常,API是第二种解决方案(与PHP一起使用,而不是作为web服务),但我发现我们做了一个复杂而有用的类建模,然后为了拥有函数、字符串和数组而拆分它,这太糟糕了。在我看来,第三个是折衷方案,但我的一位同事坚持认为这不是一个API。太糟糕了..。

你觉得呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-18 16:48:33

从架构的角度来看,3号解决方案可能是最好的。基本上,您是在使用Facade Design Pattern来简化您的应用编程接口。因为我现在正在处理它:在Patterns Of Enterprise Application Architecture中,这种方法被描述为service layer,这是完全有意义的,因为你不想让任何用户(即处理你的应用程序接口的人)暴露于比实际需要或期望的更复杂的情况下。

这包括使用尽可能简单的接口和传输对象(原始值,如果它们有意义)。一旦您的外观通过远程服务(如webservice)被调用,您最终将不得不将响应和请求分解为原始值(数据容器)。

票数 3
EN

Stack Overflow用户

发布于 2010-02-18 16:29:41

构建一组用于简化公共API的外观类。

票数 0
EN

Stack Overflow用户

发布于 2010-02-18 18:15:13

创建一些薄包装器,在原始类上实现更简单的API。不要在包装器中重新实现任何业务逻辑-如果任何逻辑发生更改,这都会给您带来麻烦,因为您肯定会忘记哪些部分被修改了,哪些没有被修改。保持外部输入/输出简单,如果你需要比字符串更复杂的东西,对结构化数据使用XML或JSON,但尽量避免太复杂-如果你有两件事要传递,两个查询参数可能比一个有两个字段的结构要好得多。

这就是“门面”模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2290202

复制
相关文章
用curl命令通过smtp协议发送邮件
为啥我要用curl来发邮件呢?主要是服务器不是邮件服务器,也没有装sendmail、postfix这类邮件服务,有时写一些脚本会用邮件提醒,这时候用curl就非常方便了。
用户2323866
2021/06/23
5.1K0
Python3.6使用SMTP协议发送邮件
开启IMAP/SMTP服务,SMTP服务器: smtp.126.com,设置开启客户端授权密码(代码里的登录密码需使用此授权密码)
geekfly
2022/04/24
5760
Python3.6使用SMTP协议发送邮件
java实现发送邮件服务器,SMTP协议发送邮件
1.采用SMTP的邮件发送协议。准备:在网易注册一个邮箱,进入设置开启SMTP/pop3协议 2.接下来就是java代码实现了,下面都有注释,就不多做解释了。 public class mail {
生活创客
2018/01/30
4.5K0
java实现发送邮件服务器,SMTP协议发送邮件
基于SMTP协议的邮件发送功能JavaEE实现
本博客介绍基于SSM框架(Spring4.0+SpringMVC+Mybatis)组合的Javamail应用,邮箱的话基于腾讯的QQ邮箱,其实也是Foxmail邮箱
SmileNicky
2019/01/17
7520
[快学Python3]SMTP发送邮件
概述 在本文中,主要介绍使用smtplib进行文本格式、HTML格式和带附件的邮件发送处理。 导入smtplib模块 import smtplib 关键函数说明 # 创建smtp对象 smtp = smtplib.SMTP([host [, port [, localhost]]] ) # 参数说明 # host: smtp服务地址,例如126邮箱的是:smtp.126.com # port: smtp服务端口 # localhost: 如果你的smtp服务在本机,则只需指定localhost即可 #
苦叶子
2018/04/09
4K0
[快学Python3]SMTP发送邮件
SMTP协议
> 参考文献 [RFC 5321](https://www.rfc-editor.org/rfc/rfc5321.txt "https://www.rfc-editor.org/rfc/rfc5321.txt")
孤鸿
2022/09/23
1.6K0
python SMTP邮件发送
本例使用的时python2.7环境,python3的操作应该也是差不多的。 需要用到smtplib和email两个包。
py3study
2020/01/16
1.8K0
用CBrother脚本实现smtp协议发送一份邮件
之前用CBrother脚本写了一个拯救“小霸王服务器”的程序,公司人用着都挺好用,但是有时候谁重启了服务器其他人不知道,造成了多人多次重启,每个人都抢救一遍,大家一再要求我添加功能,有一个人重启后给其他人发一封邮件。
无剑胜有剑
2020/07/16
4540
用CBrother脚本实现smtp协议发送一份邮件
同步等待方法
function waitVar(key,varb, fun) { //等待指定变量,返回:-1:无数据,继续等待 -2:超时 1:成功。fun不支持参数 if (!cnt2[key]) { cnt2[key] = 1 } else { cnt2[key]++ } if (!varb || varb.length == 0) { if (cnt2[key] > 10) { //超时,由于都是异步操作,相互依赖的变量会同时判断,所以这个时间是最大
用户1075292
2018/01/23
1.6K0
SMTP协议详解
电子邮件有三个主要的组成部分:用户代理,邮件服务器和简单的邮件传输协议(SMTP),我们几天主要来说一下在应用层中的SMTP协议,它使用TCP可靠数据传输服务,像大多数应用层协议一样,SMTP也有俩个部分:运行在发送方邮件服务器的客户端和运行在接收方邮件服务器的服务器端,每台邮件服务器既运行SMTP服务器端也运行SMTP客户端。
秋名山码神
2022/12/13
1.6K0
Python SMTP 发送邮件方法
在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的。
HoneyMoose
2021/03/24
1.4K0
Python SMTP 发送邮件方法
WordPress SMTP发送邮件设置
前几天设置了ssl证书,用的是Let’s Encrypt免费ssl证书设置好了才发现不能发送邮件,这点事我不能接受的,以前用的国外的VPS一直没有问题,搬至腾讯云就不能用mail()函数发邮件,刚开始一直以为是我的Exim4(debian默认的就是这个)配置有问题,然后就开始重装centos,装好以后还是不行,一直以为配置有问题,看日志发现不通,然后突然想到阿里云屏蔽25端口,是不是腾讯云也屏蔽了25端口。结果不出意料真的屏蔽了。害我重装了好几次申请Let’s Encrypt免费证书的次数也用光了。
爱游博客
2019/08/07
3.1K0
WordPress SMTP发送邮件设置
Django SMTP发送邮件 email
拿到授权码后,填入settings.py中的EMAIL_HOST_PASSWORD="授权码"即可
Autooooooo
2020/11/09
1.4K0
Django SMTP发送邮件 email
vapor smtp发送邮件provider
最经几天一直在拜读Vapor中service的源码,连续几天上班途中和下班之后都是在翻看源码,从刚开始感觉云山雾绕到逐渐清晰
大话swift
2019/07/04
1.1K0
vapor smtp发送邮件provider
Golang 通过 smtp 发送邮件
package main import( "fmt" "net/smtp" "encoding/base64" ) //html,plain func SendMail( title,user,pswd,smtpserver,port,from,to,subject,body,format string ) error { bs64 := base64.NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
李海彬
2018/03/20
1.4K0
SMTP邮件发送命令
第一步,远程登录smtp服务器 在命令行窗口输入 telnet smtp.163.com 25 然后回车 第二步,用户登录 输入 helo 163.com 回车,这是向服务器表明你的用户身份 250 OK 为服务器返回的确认信息,说明服务器认可了你的身份 输入 auth login 回车,这是告诉服务器你要输入用户名了(即登录邮箱时的用户名),服务器将返回一个确认信息334 这时就可以输入用户名了,注意这里的用户名需要编码后才能识别,即如果你的用户名是 fatbear@qq.com 那么你需要将fatbear进行 base64 编码,将编码结果输入命令提示符窗口。base64编码器可以在网上下到,是一个简单的小工具。 用户名输入成功后服务器返回一个334的确认信息。 用户名输入成功后,接着输入密码,密码同样是需经过 base64 编码后再输入。输入成功后服务器返回一个含‘successful’的信息,说明成功登录。 第三步,写信 输入 mail from:< > 回车 <>中填写发件人的邮箱,即你自己的邮箱名 输入 rcpt to:< > 回车 <>中填入收件人的邮箱 输入 data 回车 ,回车后就可以开始写邮件内容了 下面是data下的可选项: 输入 from:发件人名称 ,此项可任意填入,将显示在收件箱的‘发件人’一栏 输入 to:收件人名称 ,可任意填入,将显示在收件箱的‘收件人’一栏 输入 subject:信件主题 ,显示在收件箱的‘主题’一栏中 Content-Type: text/plain;charset=\"gb2312\ 此时需空一行,即在一空行直接回车,表示正文部分的开始 空行后输入信件的正文内容。 在正文输入结束时输入一个 . (英文输入法下的句号)回车,表示正文部分的结束。这时将显示邮件成功发送的信息。 关于正文输入汉字的问题, 在该窗口下视无法输入汉字的,可以在写字板中打好汉字后复制粘贴进去,且粘贴时只能使用鼠标右键而不能用快捷键,至少我的不行。
张泽旭
2018/12/10
1.4K0
python之SMTP发送邮件
假设我们自己的邮件地址是myemail@163.com,对方的邮件地址是friend@qq.com,我们在网易提供的163邮箱界面编写邮件,然后发送给对方。那么,这封邮件是怎么从我方发送到对方的呢?
菲宇
2019/06/13
1.3K0
不使用smtp直接发送邮件
用smtp发邮件挺蛋疼的,不是有配额限制就是有配额限制.所以我觉得应该有直接发送邮件的办法.回归到用命令行装逼的年代,我们是这样发信的: C:\>nslookup 默认服务器: google-public-dns-a.google.com Address: 8.8.8.8 > set type=mx > qq.com 服务器: google-public-dns-a.google.com Address: 8.8.8.8 非权威应答: qq.com MX preference = 10, mail
码农二狗
2018/06/29
2.8K1
点击加载更多

相似问题

Javafx拖放TabPane

20

JavaFX TabPane title OverrunStyle

11

更改JavaFX TabPane背景

11

JavaFx TabPane自动关闭

10

针对TabPane的JavaFX ProgressBar

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文