Tag: api

Charles Proxy入门

我从事iOS开发(专业)已有6年以上。 我为他人编写的每个iOS应用程序中都有一个常量。 它们都与Web服务进行通信以从iOS应用程序/客户端读取和写入数据。 甚至我个人的个人项目应用程序也从设备上完全隔离的状态转变为与Web服务的通信。 如果您在与Web服务进行通信的任何类型的移动客户端上工作,则应学习如何使用Charles Proxy。 我使用此工具已有多年,发现它绝对不可或缺。 这篇文章将为在一个简单的iOS项目中使用Charles提供入门。 我写了一个非常简单的项目,将从Unsplash加载“策展的图像”。 您可以从GitHub获取源代码。 这篇文章中的所有设置都是针对iOS模拟器的。 但是,设置Charles与其他设备(tvOS或真实的iOS / tvOS设备)对话非常容易。 我已经编写了单独的指南来设置Apple TV设备的Charles Proxy,您可以在这里找到它:在Apple TV(tvOS)上设置Charles Proxy。 请注意:我在此处概述说明的方法并不是唯一的处理方法。 随意自行探索应用程序。 另外请注意:我已收录了简短的YouTube视频,其中显示了以下说明的步骤。 一些说明可能会很复杂,YouTube视频应该会有所帮助。 Charles代理详细信息 在开始之前,这里是有关Charles Proxy的一些详细信息。 直接从开发者的网站上: Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。 这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。 网站:http://www.charlesproxy.com 费用:50美元 免费试用? 是的,持续30天 Charles Proxy概述 Charles Proxy是一个HTTP代理/监视应用程序。 它允许您监视来自各种来源的Web流量,包括macOS / iOS / tvOS设备和iOS / tvOS模拟器。 这意味着您不必编写这样的临时代码: print(“JSON Response: \(JSON)”) 要么 NSLog(@”JSON Response: %@”, […]

NatCam教程系列1:开始

NatCam于2015年秋天启动。我当时在一家需要在Unity中扫描条形码的初创公司工作。 当时没有解决方案,而最接近的( WebCamTexture )根本不能令人满意。 因此,我决定创建一个API来完成我们需要的API。 一年半过去了,我们来了! 那么NatCam的作用是什么? 很高兴你问。 以下是(非详尽的)列表: 流体相机预览,与WebCamTexture 高分辨率预览(在某些设备上为1920×1080或更高) 自定义分辨率预览,根据需要高低 照片拍摄。 拍摄8MP,12MP或更高的高分辨率照片 闪。 拍摄照片时,设置闪光模式 对焦和自动对焦 曝光控制。 使场景变亮或变暗 相机光学变焦 火炬。 无论是否正在运行摄像头预览,请戴上手电筒 VR支持,适用于我们所有的Cardboard和GearVR爱好者 预览数据。 在流式传输预览数据时对其进行访问

Zoom REST API和SDK-第4部分

只要您具有Objective-C或Swift的编程经验,就可以轻松使用Zoom的iOS SDK。 在开始使用之前,一些一般性的评论。 ·阅读REST API博客的第1部分和第2部分 ·通过登录Zoom.us中的帐户下载SDK(zoom-ios-sdk.zip)。 该SDK附带一个示例xcode项目(ZoomSDKSample.xcodeproj),您可以在xcode中打开该项目。 我推荐xcode 7 ·SDK支援iOS 6.0以上版本 ·将框架和系统库导入到您的项目中(在将库导入到自己的项目中之前,请确保可以在模拟器中编译并运行演示应用程序)。 导入后,您应该看到以下内容: ·您会注意到Zoom SDK的内存占用量更大-大约150 MB。 这是因为SDK使用了设备/模拟器框架,并且还使用了多个外部库-这是任何实时协作产品所特有的 ·使用SDK时,应用程序应使用Zoom的REST API来注意用户管理。 稍后在博客中对此有更多的了解 ·SDK尚不提供很多会议控件,但Zoom正在进行中 初始化SDK SDK下载随附的演示应用程序具有obj-C的示例。 初始化非常简单-您需要准备好SDK密钥/秘密,并在调用Auth之前提供它。 这是我的appdelegate.swift-我排除了错误处理,因为此处的目的是演示SDK的用法。 导入UIKit @UIApplicationMain AppDelegate类:UIResponder,UIApplicationDelegate,ZoomSDKAuthDelegate { var window:UIWindow? func application(应用程序:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)-> Bool { //应用程序启动后进行自定义的替代点。 // sdk_domain指向您帐户所属的生产云— Zoom为大型企业和服务提供商提供了专用的云,这些云将属于不同的域。 let sdk:ZoomSDK = ZoomSDK.sharedSDK(); sdk.zoomDomain =“ zoom.us”; self.sdkAuth(); 返回真 } func sdkAuth() { let sdk:ZoomSDK […]

构建Swift API端点

我们通常在常量文件中维护服务常量,从而针对开发,登台和生产等环境更改端点。 不幸的是,当将构建推入存储或进行临时发行时,此过程容易出现人为错误。 为避免这种情况,我们可以根据环境构建baseURL,如下所示。 然后,您可以在扩展中添加与应用程序相关的功能,如下所示: 在行动中使用环境: 我们可以使用构建设置中的“调试”设置来维护相应的环境。 为此,我们将使用预处理程序宏#if DEBUG并将环境设置为“开发”。我们可以在#else下将环境更改为“暂存”或“生产”。 可以如下所示管理端点。 我们甚至可以将属于特定功能的多个端点归为一组。 例如,与用户相关的API可以分组在“ struct User”下,并且可以作为“ structName.method”进行访问。 用法: 我们可以看到路径如何在Xcode中直观地流动: 通过单击以下链接,可以查看样本ServiceConstants.swift文件: https://github.com/appitventures/IOS-Blog/blob/master/ServiceConstants.swift 有关如何从项目目标和方案维护环境的更多详细信息,请参阅此博客: 设置Xcode目标:如何使用不同的API环境创建多个iOS构建

适用于iOS的Firebase,无效的API密钥

目前,由Google拥有的Firebase如今已成为最受欢迎的云托管NoSQL / JSON数据库,从博客文章到YouTube视频都有大量的教程。 您可以免费学习基础知识😎(了解基础知识后,您可以自己学习高级知识,对吗?😆) 该媒体不会教您如何使用Firebase,而是向您展示Firebase中的常见错误。 (如果我错了纠正我!) 请求中提供了无效的API密钥。 通常,我们不想面对学习状态下教程中未解决的任何问题。 这就是所谓的动机。 好吧,聊够了! TL; DR 重新下载GoogleService-Info.plist文件 Firebase身份验证 要在iOS项目中使用Firebase,首先需要创建一个Firebase项目并向其中添加您的iOS应用(捆绑ID)。 然后,您需要将`GoogleService-Info.plist`添加到iOS项目中并安装 Firebase框架。 现在,我假设您已按照说明进行了所有设置,例如“ FIRApp.configure()”,并且可以使用基于密码的帐户使用Firebase编写一些身份验证代码。 可选(错误域= FIRAuthErrorDomain代码= 17023“请求中提供了无效的API密钥。” UserInfo = {NSLocalizedDescription =请求中提供了无效的API密钥。,error_name = ERROR_INVALID_API_KEY}) 问题是GoogleService-Info.plist文件没有API_KEY项。 如果您四处搜寻,可能会得到很多答案,其中之一就是设置API密钥并将其添加到PLIST文件中。 不要那样做! 您可能会遇到另一个错误。 发生内部错误,请打印并检查错误详细信息以获取更多信息。 访问未配置。 之前尚未在项目xxxxx中使用Google Identity Toolkit API,或者已将其禁用。 通过访问https://console.developers.google.com/apis/api/identitytoolkit/overview?project=xxxxx启用它,然后重试。 如果您最近启用了此API,请等待几分钟,以便该操作传播到我们的系统并重试。 这是因为给定的API密钥不是来自Firebase项目。 请注意,它也不是Web API密钥 。 解 要解决此问题,您需要做的就是重新下载GoogleService-Info.plist文件,并替换为iOS项目中的文件。 您将在新的PLIST文件中看到一个“ API_KEY”项。 要再次下载文件: 转到Firebase项目概述 点击iOS应用的⠇(三个垂直点),然后选择管理 向下滚动,您将看到一个下载PLIST文件的按钮 结论 这个小问题应该首先解决。 对于初学者来说,这很麻烦。 […]

将您带入地图:iOS逐步介绍Google Maps

该博客旨在逐步详细地介绍如何在iOS应用上设置Google Maps。 对于此博客,任务是在The Flatiron School放置一个Google Maps标记,以便每个人都知道我在哪里学习。 第1步-安装Cocoapods Google Maps SDK可作为Cocoapods窗格使用。 当您听到术语Cocoapods pod和SDK时,有些人可能会像这样this。 不用担心,那很好。 不久之前,我的脸也一样。 让我们首先来看一个简单的SDK。 SDK是指软件开发人员套件。 Cocoapods是管理Xcode项目库依赖关系的工具。 换句话说,Cocoapods是使我们的生活更容易开发软件的工具。 如果尚未安装Cocoapods,则只需转到终端(按Command + Space并编写Terminal)。 在那里,输入: 须藤宝石安装cocoapods 等待安装完成,然后输入“ pod”。 如果看到此图片,恭喜! 您已经安装了Cocoapods。 如果您对此还有其他疑问,请访问https://cocoapods.org/ 第2步-创建Podfile 首先在您的Xcode中创建一个项目。 为了撰写本博客,我们将创建一个名为“ Google Maps”的单一视图项目。 然后,打开终端并转到包含您的项目的目录。 在那里,输入“ pod init”。 这将创建一个名为“ Podfile”的pod文件。 下一步是编辑该文件以添加Google Maps依赖项。 我们将使用文本编辑器打开文件来完成此操作。 我使用Atom(https://atom.io/)。 如果您不这样做,我强烈建议您开始使用它。 如果您有Atom,只需在终端中编写“ atom Podfile”,pod文件将在Atom中为我们的版本打开。 在文件中添加“ pod’GoogleMaps’”并保存(Ctrl + S)。 您的文件应如下所示: 最后,我们准备在项目中安装Podfile。 为此,我们只需键入“ pod […]

最简单易用的客户端应用程序的Swift Generics和元编程

使用元编程和泛型来构建最易于使用的客户端API 该项目的目标是避免通常在客户端应用程序上需要的样板代码。 您将能够避免将本地对象转换为所需的服务器端对象,反之亦然。 您还将免费获得所有服务器通信方法。 只需创建一个新类型并与服务器进行通信即可。 例如,最后,您将能够创建一个符合我们的帮助协议FirebaseFetchable的新类,如下所示: 最终课程宠物:FirebaseFetchable { //来源:忽略 var firebaseId:字符串=“” //来源:忽略 var isCompleted:Bool = false 变量名称:字符串=“” 在里面() {} } 您将能够使用自动生成的PetManager类中的自动生成的方法与服务器进行通信,如下所示: 让fido = Pet() fido.name =“ Fido” PetManager.shared.save(fido) 这会将Pet对象保存到您的远程数据库中。 您还可以自动生成用于从数据库中获取,更新和删除的方法。 因此,实际上这仅是创建新类型matter的问题。 在此项目中,我使用了Firebase,因为它是快速项目的非常简单的设置。 对于元编程,我使用了Sourcery,这是一个出色的代码生成工具。 设定 首先,请在Xcode中创建一个单视图应用程序。 然后,您需要设置Firebase。 转到firebase网站,获取您的plist文件以及仪表板设置。 非常容易和快速。 之后,下载plist文件并将其附加到项目。 如果需要帮助,请查看他们的教程。 然后,创建一个Pod文件,包括Firebase和Sourcery并安装它们。 如果您需要Pod的帮助,请查看此链接。 您的pod文件将如下所示: 目标“您的项目名称” use_frameworks! #Your_Project_Name的广告连播 pod’Sourcery’ pod’Firebase / Database’ 结束 在UIApplicationDelegate中,确保导入Firebase模块: 导入Firebase 并在同一文件中配置Firebase共享实例: func […]

在JSON API中处理传入数据

我被问到的常见问题之一是如何处理来自移动或Web应用程序的不同格式的请求。 可以为JSON API提交数据的三种主要方式: 通过URL传递的数据(即http://www.example.com/api/v1/stuff?var1=myName) 作为POST请求中的表单参数 作为JSON提交的POST,PATCH或PUT请求的主体。 因此,我将从“完美应用程序模板”的一个简单实例开始: $ git clone https://github.com/PerfectlySoft/PerfectAppTemplate.git jsontest $ cd jsontest $ swift包generate-xcodeproj 这将创建一个Xcode项目…打开它,然后打开“ Sources-> Perfect-App-Template-> configuration-> Routes.swift” 在第29行,有一条GET请求的路由,URI为“ /” 如果我们现在按原样运行此项目,则它将构建应用程序并运行它。 要运行:从“方案”下拉列表中选择可执行目标,然后运行(CMD-R)。 然后,在浏览器中访问http:// localhost:8181-您将看到“ Hello,World!” JSON路由和Postman测试 尽管我们可以使用浏览器轻松测试GET路由,但对于其他请求类型(如POST)却并非如此简单。 这是诸如Postman之类的工具介入的地方-这使我们能够通过各种选项模拟不同类型的请求。 JSON GET路线 我们需要添加的两件事是路由,以及该路由的处理程序。 路线: route.append([[“ method”:“ get”,“ uri”:“ / api / v1 / test”,“ handler”:Handlers.JSONtestGET]) 这指向新的路由Handlers.JSONtestGET ,我们需要创建它: 静态函数JSONtestGET(data:[String:Any])抛出-> RequestHandler { 返回{ 请求,回应 做{ […]

蒸气2入门-Restful API Swift Server

正如之前在这里宣布的那样,Vapor框架刚刚推出了其2.0版本。 在Monk Software,我们一直在寻找新技术,我们为Vapor提供了机会! 什么是蒸气? Vapor是服务器端Swift Web框架。 无论您需要什么,Restful API Server,显示html页面,发送电子邮件或推送通知,Vapor几乎可以满足所有需求。 我们将在这篇博客文章中介绍什么? 今天,我想向您展示从Vapor API模板开始,添加一些端点然后将服务器部署到Heroku多么容易。 让我们开始吧 我假设您使用的是装有Swift和Xcode的Mac,如果没有,请安装Xcode(Swift捆绑在其中),如果您使用的是Ubuntu,请按照此指南进行操作。 1)安装蒸气工具箱 要充分利用Vapor,我们还需要它的工具箱,您可以通过在终端中输入以下内容进行安装: 冲泡安装蒸气 或者,如果您在Ubuntu上,请执行以下操作: sudo apt-get更新 sudo apt-get安装蒸气 2)创建一个新的应用程序 创建一个超级简单的应用程序,只需在终端中输入: 蒸气新的IncredibleVaporApp –template = api(或您想要的任何名称) 在少数情况下,Vapor应该下载所有依赖项,并使用给定的应用程序名称创建一个文件夹。 3)可选:生成Xcode项目文件 如果您想利用Xcode自动补全功能,可以在vapor app文件夹内的终端中键入以下内容: 蒸气Xcode 这将生成.xcodeproj,键入“ y”以在Xcode中打开。 4)运行服务器 好的,我们已经准备好运行我们的服务器,如果您使用Xcode,请选择方案App并按play,如果您在Ubuntu中,请输入终端: 蒸气生成和&蒸气运行 build将提取要部署的构建,然后运行将启动服务器。 默认情况下,Vapor将在以下地址启动服务器: 0.0.0.0:8080进行测试,请访问http://0.0.0.0:8080/hello, 您将看到此类型的json: {“你好,世界”} 一切都按预期进行! 5)添加自定义端点 现在是时候添加我们的自定义终结点了,假设我们要通过传入一个人的名字来问候他。 首先,在我们的项目中打开Routes.swift文件,然后在方法中 func build(_ builder:RouteBuilder)抛出 我们可以添加新的API: builder.get(“ greet”){要求 let name […]

移动应用程序后端开发的七个步骤

如果您要为移动应用程序构建后端,则必须采取什么步骤来完成它? 我将通过7个步骤总结后端开发: 确定后端和前端职责 编写初始端点并使其正常工作 设计API并记录下来 设计和实现数据库 编写后端测试脚本 使用编程语言实现API 部署 让我们更详细地完成每个步骤。 确定后端和前端职责 对于某些类型的应用程序,后端只是简单值的数据存储。 但是对于更复杂的应用程序,您可能必须在后端而不是前端执行复杂的任务。 在两种情况下,您将在后端执行复杂的任务: 您的数据需要在服务器上进行验证。 例如,用户试图播放音频文件,但是服务器必须通过检查数据库来检查她是否有权播放文件。 您的数据与系统的其他部分(例如数据库)进行交互。 例如,您的应用程序注册了一个必须更新用户数据库的用户,该用户数据库将向用户发送验证电子邮件,还向系统管理员发送电子邮件。 还有其他原因可能会在后端而不是前端上执行操作。 关键是要在开始之前大致弄清楚这一点。 编写初始端点并使其正常工作 在确定后端的职责之后,是时候启动并运行某些东西了。 您可以与客户端连接的实际服务器端点。 使用向后后端技术来实现这个目标。 这意味着为后端和前端应用程序都编写存根函数。 不是完整的API,而是足够使您拥有最少的工作后端。 设计API并记录下来 第三步是设计您的后端API。 关于设计RESTful API的讨论很多,但我认为您不必遵循本书的RESTful原则。 相反,只需清楚地记录每个后端API端点应该做什么。 对于每个端点,请清楚地记录客户端需要提供哪种类型的值,以及后端将返回哪种类型的值。 指定哪些值是必需的,哪些值是可选的。 例如,假设您有一个get_movies端点,该端点根据日期范围返回电影列表。 如果客户端提供了日期范围,则它将返回在该日期范围内创建的电影。 如果未提供日期范围,则使用从当前日期开始的过去一周。 记录这一事实很重要。 这似乎很简单,但是关键是要对其进行记录并保持 文档更新。 设计和实现数据库 现在,您可以从API文档中了解数据的结构以及如何存储它们。 在大多数情况下,请使用MySQL。 遵循良好的数据规范化原则,但要走得足够远 有意义,仅此而已。 编写后端测试脚本 用bash / curl或Python编写一个快速测试脚本,以验证所有后端端点是否正常运行。 使用编程语言实现API 现在是时候使用编程语言来构建API。 我更喜欢使用Python。 (我将在截屏视频中更详细地介绍) 部署后端 您可以使用诸如AWS之类的云服务来部署后端来托管后端,也可以使用专用主机。 这是一个很大的主题,我一定会在另一篇文章中介绍。 […]