php - 使用 JSON 和 PHP 创建注册 API

标签 php ios json api

我有一个网站,全部用 PHP 编码(以及 HTML、JavaScript、SQL 等)。我目前正在为这个网站制作一个 iPhone 应用程序,为了访问我需要的不同 SQL 数据,我正在构建一种 API。到现在为止,我只需要非常简单的数据,所以通过一个查询,一个 if/else,我就会得到我的数据,我只是用 JSON 来回应它。一切都很简单。

但我现在想为网站的注册部分制作 API。在页面上,我会收到来自 iPhone 应用程序的数据(用户名、密码、电子邮件等),我必须检查用户名是否尚未使用,密码是否有效且匹配,电子邮件是否有效有效且尚未使用等。如果其中一个条件不匹配,我显然必须告诉应用程序哪里出了问题。如果一切正常,我就会注册,然后告诉应用程序我已经完成了。

但是我对 jSON/API 的概念不是很熟悉,也不知道正确的做法是什么。你如何处理 jSON 等中的多个响应。这个问题听起来很基本,但这正是我所在的地方。 我的意思是,我会做这样的事情:

        if ($_POST['pass'] == $_POST['pass_confirm']) {                     
        if(!isValidPassword($_POST['pass'])){
            echo '{"success":0,"error_message":"Password invalid"}';
        }else{

全程。但这给了我一个巨大的屁股代码,可以很明显地简化它,因为相同的元素一次又一次地重复。但我无法理解它。那么,我该如何简化验证注册和发回 JSON 数据的整个过程。

谢谢。

最佳答案

这是我的建议。只输出一次 JSON。将输出包装在函数调用中,例如 function showOutput($success, $message) {}。设置条件,以便测试错误而不是成功,即:

if($pass !== $pass_confirm) {
    showOutput(false, 'Passwords don\'t match');
    return;
}

// Here I know I'm still on a successful track

这也称为 guard clauses并将帮助您避免实现 arrow anti-pattern如果增加额外的要求,您可能已经遭受或将来可能发展的痛苦。将其与您当前的方法进行对比:

if($pass === $pass_confirm) {
    if($someotherCondition) {
        if($managerBobsCondition) {
            // success!
        }
    }
}

该代码可以重构为如下所示:

if($pass !== $pass_confirm) {
    // error!
}

if(!$someotherCondition) {
    // error!
}

if(!$managerBobsCondition) {
    // error!
}

// success!

这样更清晰/更易于阅读。添加额外的要求也更加简单,因为您没有复杂的逻辑树,您需要对它进行排序以找出您需要放置新的 else if 条件的确切位置!

关于php - 使用 JSON 和 PHP 创建注册 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24142561/

相关文章:

php - Zend Translate 会自动检测语言吗?

php - 如何获取 file_get_contents() 警告而不是 PHP 错误?

ios - 如何在 SwiftUI 中将 LocalizedStringKey 更改为 String

安卓工作室 : Parsing JSON Data From 2 Different JSONArrays

Android:将 Web 服务 json 输出转换为 java hashmap

php - 如何显示所有数据库的记录数

php - MySQL 查询拉取项目,但总是在顶部显示某个项目

ios - Swift - 通过公开按钮将数据从 mapkit 注释传递到另一个 View

objective-c - iOS 上的数据源

javascript - 奇怪的日期格式帮助