天道酬勤,学无止境

Create Mock Service API using Apiary

I'm attempting to create mock api services for testing purposes. We are already using Apiary on another team so I'm starting there.

So far, I've noticed that if I want to have two separate calls requires mocking out of both requests. For example to get the notes with ids 1 and 2 requires explicitly writing out responses like:

/notes/1 /notes/2

Is there a way to avoid this? Admittedly I'm still ramping up on creating blueprints.

评论

Have a look at private-e9e59-pingdomcheck.apiary-mock.com/v1/gists/1. The number 1 is {id} here. You of course get only the general defined response (like if I used id 42).

There are more things being done right now in MSON. Once it's released, different replies for different parameters in request will be possible.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 使用 API 蓝图记录查询参数(Documenting query parameters with API Blueprint)
    问题 我正在尝试在 API Blueprint 中记录查询参数,但我不完全确定我是否正确完成了它。 资源看起来像这样: DELETE http://baasar.apiary-mock.com/user/{appId}/{userId} 该请求将停用用户,而以下内容将删除用户对象: DELETE http://baasar.apiary-mock.com/user/{appId}/{userId}?force=true 这是我为此的蓝图降价: ## User [/user/{appId}/{userId}] Handle user objects + Parameters + appId (required, number, `1`) ... Application ID (`appId`) + userId (required, number, `1`) ... Numeric `userId` of the User object to manage ### Remove an User [DELETE] + Parameters + force (optional, boolean, `false`) ... Set to `true` to remove instead of deactivate + Response 204 但是,当使用 Apiary 渲染它时
  • 量角器的模拟和存根(Mocking and Stubbing with protractor)
    问题 我想用量角器测试我的角度应用程序。 该应用程序具有与服务器通信的API模块。在这些测试中,我想模拟此Api模块。 我不想进行完整的集成测试,但是要从用户输入中进行测试,并从API中获得期望的值。 这不仅可以使客户端测试更快,还可以让我测试边缘情况,例如连接错误。 我该如何用量角器做到这一点? 我刚刚开始设置集成测试。 我使用了npm量角器模块,安装了硒,调整了默认配置,并使用onProtractorRunner.js来验证我的设置是否有效。 推荐的模拟方法是什么? 我假设模拟必须在浏览器中完成,而不是直接在测试文件中完成。 我假设测试文件中的命令是量角器专用的,并且将被发送到硒运行器。 因此,在会话和测试期间,我无法共享javascript对象。 我以某种方式期望我需要一个像sinon.js这样的间谍库,或者它已经包含在量角器中了? 编辑:我在量角器问题跟踪器中阅读了有关此问题的信息,这可能是实现此问题的一种方法。 基本上,您在测试中编写了一个模拟模块,该模块被发送以在浏览器/应用程序范围内执行。 编辑:这是更有希望的问题。 第一部分谈到了将Mocks添加到Angular App中。 第二部分谈论嘲弄后端。 这看起来真的很好,在这种情况下,Angular App将保持其原始形式。 但是,这目前仅适用于已弃用的ng-scenarios。 回答1
  • Good rest code generation and documentation tool [closed]
    Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 4 years ago. Improve this question I have been considering a documentation tool for building a backend for a web service to be used in multiple clients along with OAuth and possibility of multiple revisions. I already knew about apiary but doing a little research I found other considerably good solutions with lucrative promises. RAML seems to be promising good code generation and api reusability. But
  • 效率专精:前后端分离实践中如何提升RestAPI开发效率【建议精读】
    团队内部RestAPI开发采用设计驱动开发的模式,即使用API设计文档解耦前端和后端的开发过程,双方只在联调与测试时耦合。在实际开发和与前端合作的过程中,受限于众多因素的影响,开发效率还有进一步提高的空间。本文的目的是优化工具链支持,减少一部分重复和枯燥的劳动。 现状梳理 前后端工作流 需求理解:前后端先理解产品思路、需求的详细内容 敲定接口:后端出API设计文档初稿,与前端面对面或者在线讨论修正,接着后端(有时是前端)把API描述记录到公司内部的API文档库(在线markdown编辑器,提供分级目录的存储功能,对如何描述API没有一定的标准,因此描述格式不统一,因人而异1)。接着根据双方工作的安排,约定联调时间 独立开发:双方独立开发(也有可能非完全独立开发,如需要对方的环境配合等;或者存在返工,如API设计发生变更等) 系统联调:测试API基本功能和双方系统的连通性 测试回归:开发或者QA编写测试用例并测试业务流程 可优化方向 1. 减少文档编写时间 根据个人的开发经验,后端编写API设计文档时常见的情况有:如果是简单的需求,API数量较少,后端直接通过内部即时通信软件和前端沟通;如果是复杂的需求,API数量较多,后端会先把API描述写到本地临时文档(纯文本、markdown、evernote等)或者内网(内部个人Wiki、git仓库)中
  • Documenting query parameters with API Blueprint
    I'm trying to document a query parameter in API Blueprint, but I'm not entirely sure if I have done it correctly. The resource looks like this: DELETE http://baasar.apiary-mock.com/user/{appId}/{userId} That request would deactivate the user while the following would delete the user object: DELETE http://baasar.apiary-mock.com/user/{appId}/{userId}?force=true This is the Blueprint markdown I have for this: ## User [/user/{appId}/{userId}] Handle user objects + Parameters + appId (required, number, `1`) ... Application ID (`appId`) + userId (required, number, `1`) ... Numeric `userId` of the
  • 是否可以将表格放在markdown文件中居中?(Is it possible to center tables in a markdown file?)
    问题 我有一张桌子: | This | Is | A | Table | | :--- | -- | - | ----: | | foo | ba | r | elbaT | 我希望表格显示在Markdown文件的中心,而不是左对齐。 我不是要对齐文本,而是要对齐整个表格本身。 我需要依靠HTML / CSS来实现自己想要的吗? 这是针对Apiary.io项目的。 回答1 如果您使用标准文档,请使用<center>标签。 蓝图 FORMAT: 1A HOST: http://www.google.com # Tables Notes API is a *short texts saving* service similar to its physical paper presence on your table. <center> | Tables | Are | Cool | |----------|:-------------:|------:| | col 1 is | left-aligned | $1600 | | col 2 is | centered | $12 | | col 3 is | right-aligned | $1 | </center> # Group Notes (...) 预习 如果您使用“新文档” ,则无法将表格居中(因为表格占据了整个列的宽度)
  • 使用httpClient.GetAsync时添加标题(Adding headers when using httpClient.GetAsync)
    问题 我正在Windows Store应用程序项目中实现由Apiary.io的其他同事制作的API。 它们显示了我必须实现的方法示例: var baseAddress = new Uri("https://private-a8014-xxxxxx.apiary-mock.com/"); using (var httpClient = new HttpClient{ BaseAddress = baseAddress }) { using (var response = await httpClient.GetAsync("user/list{?organizationId}")) { string responseData = await response.Content.ReadAsStringAsync(); } } 在这种方法和其他方法中,我需要具有一个标头,该标头带有我之前获得的令牌。 这是邮递员(chrome扩展名)的图片,其中包含我正在谈论的标头: 如何将“授权”标头添加到请求中? 回答1 当将GetAsync与HttpClient一起使用时,您可以像这样添加授权标头: httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Your Oauth
  • Adding headers when using httpClient.GetAsync
    I'm implementing an API made by other colleagues with Apiary.io, in a Windows Store app project. They show this example of a method I have to implement: var baseAddress = new Uri("https://private-a8014-xxxxxx.apiary-mock.com/"); using (var httpClient = new HttpClient{ BaseAddress = baseAddress }) { using (var response = await httpClient.GetAsync("user/list{?organizationId}")) { string responseData = await response.Content.ReadAsStringAsync(); } } In this and some other methods, I need to have a header with a token that I get before. Here's an image of Postman (chrome extension) with the header
  • 方形改装服务器模拟测试(Square retrofit server mock for testing)
    问题 使用方形改造框架时,模拟服务器进行测试的最佳方法是什么。 可能的方式: 创建一个新的改装客户端,并在RestAdapter.Builder()。setClient()中进行设置。 这涉及解析Request对象,并将json作为Response对象返回。 将这个带注释的接口实现为模拟类,并使用它代替RestAdapter.create()提供的版本(不会测试gson序列化) ? 理想情况下,我想让模拟服务器提供json响应,以便我可以同时测试gson序列化。 任何例子将不胜感激。 回答1 模拟翻新2.0请求测试 由于旧的机制(例如,创建MockClient类并从Client实现它)在Retrofit 2.0中不再起作用,因此在此我描述了一种新的实现方式。 您现在需要做的就是为OkHttpClient添加自定义拦截器,如下所示。 FakeInterceptor类仅覆盖intercept方法,如果应用程序处于DEBUG模式,则返回给定JSON。 RestClient.java public final class RestClient { private static IRestService mRestService = null; public static IRestService getClient() { if(mRestService == null) { final
  • 如何使用 apiary 记录多部分请求?(How do I document a multipart request with apiary?)
    问题 我想记录一个多部分请求,如下所示: Content-Length: 477 Content-Type: multipart/form-data; boundary=---BOUNDARY -----BOUNDARY Content-Disposition: form-data; name="image[file]"; filename="image.jpg" Content-Type: image/jpeg Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAABAAEDASIA AhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEB AAAAAAAAAAAAAAAAAAAAAP
  • 如何在Go中的POST请求中发送JSON字符串(How do I send a JSON string in a POST request in Go)
    问题 我尝试使用Apiary,并制作了一个通用模板以将JSON发送到模拟服务器并具有以下代码: package main import ( "encoding/json" "fmt" "github.com/jmcvetta/napping" "log" "net/http" ) func main() { url := "http://restapi3.apiary.io/notes" fmt.Println("URL:>", url) s := napping.Session{} h := &http.Header{} h.Set("X-Custom-Header", "myvalue") s.Header = h var jsonStr = []byte(` { "title": "Buy cheese and bread for breakfast." }`) var data map[string]json.RawMessage err := json.Unmarshal(jsonStr, &data) if err != nil { fmt.Println(err) } resp, err := s.Post(url, &data, nil, nil) if err != nil { log.Fatal(err) } fmt.Println("response
  • How do I send a JSON string in a POST request in Go
    I tried working with Apiary and made a universal template to send JSON to mock server and have this code: package main import ( "encoding/json" "fmt" "github.com/jmcvetta/napping" "log" "net/http" ) func main() { url := "http://restapi3.apiary.io/notes" fmt.Println("URL:>", url) s := napping.Session{} h := &http.Header{} h.Set("X-Custom-Header", "myvalue") s.Header = h var jsonStr = []byte(` { "title": "Buy cheese and bread for breakfast." }`) var data map[string]json.RawMessage err := json.Unmarshal(jsonStr, &data) if err != nil { fmt.Println(err) } resp, err := s.Post(url, &data, nil, nil)
  • Google Auth runs in Visual studio but hangs when deployed to IIS
    I am working with the Google .Net client library. The way it works is when a user wants to authenticate to Google the library spawns a new webpage for the user to authenticate with. System.Diagnostics.Process.Start(authorizationUrl); My code using the library credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, scopes, userName, CancellationToken.None).Result; If I run this locally via Visual studio it works fine. However if I try to deploy it just hangs. If run it using Visual studio using Local IIS. I get the following error. System.Exception
  • vue-element-template前端搭建笔记
    1.前期准备 你需要在本地安装 node 和 git。本项目技术栈基于 ES2015+、vue、vuex、vue-router 、vue-cli 、axios 和 element-ui,所有的请求数据都使用Mock.js进行模拟。相关知识需要自己去相关网站学习。 Node安装地址: 官网下载地址:https://nodejs.org/en/download/ 中文下载地址:http://nodejs.cn/download/ Git安装地址: https://git-scm.com/ Vue官方网站:https://cn.vuejs.org/Element-ui官方网站:https://element.eleme.cn/#/zh-CN/component/tableMock.js官网: http://mockjs.com/ES6教程:https://es6.ruanyifeng.com/axios官网 :http://www.axios-js.com/ 2 安装框架 本项目在 vue-admin-template 的基础上进行二次开发,建议同时安装vue-admin-template和vue-element-admin,把 vue-element-admin当做工具箱或者集成方案仓库,想要什么功能或者组件就去 vue-element-admin 那里复制过来
  • 使用Docker本地搭建Mock服务
    一、前言 接口测试是开发中必不可少的一个环节,我所了解可以进行接口测试的有Swagger、Postman、DOClever等平台,不过我们为了安全最好还是在内网来搭建一个Mock服务,下面我们将在Linux云服务器上使用Docker搭建DOClever服务。 二、环境准备 CentOS7操作系统(云服务器更好)Docker,➡ 安装方法Docker Compose,➡ 安装方法 如果在终端都可以打印版本号说明安装成功了: 三、使用docker-compose进行容器管理 下面我们需要创建一个docker-compose.yml文件,来配置本地需要的服务。 # 切换到home目录下 cd /home # 创建doclever文件夹,切换到该目录下 mkdir doclever cd doclever # 创建并编辑`docker-compose.yml`文件 vi docker-compose.yml 接下来我们来配置我们的服务: version: "2" services: DOClever: image: lw96/doclever restart: always container_name: "DOClever" ports: - 10000:10000 volumes: - /srv/doclever/file:/root/DOClever/data/file - /srv
  • Unit Test of Retrofit 2 api call with Mockito
    I need some advices on how to mock a rest api. My application is in MVP architecture. My interface for API: public interface MyAPI { @GET("{cmd}/{userName}/{password}") Observable<Response> login( @Path("cmd") String cmd, @Path("userName") String userName, @Path("password") String password ); My service: public class MyService implements IService { private static MyService mInstance = new MyService(); private MyAPI mApi; public static MyService getInstance() { return mInstance; } private MyService() { OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); httpClientBuilder
  • Generate JSON Schema for ASP.Net Web API
    I'm looking to generate JSON Schema for a WebAPI, including documentation from the XML comments. Its primarily so that I can then import that into our API docs (using apiary.io) I've managed to get a workaround solution by adding swagger (and swashbuckle) and then using the raw link on each service - but ideally I'd like something a bit cleaner, that works across all apis (this has to be done per service / controller), and didnt have so many dependencies. Before I go and look at how swagger is doing this and seeing if it can be extracted, would be good to know if there are existing ways to do
  • react项目配置mockjs、跨域配置,模拟后台接口
    本地跨域配置 react porxy 只代理一个,修改package.json文件,新增 "proxy":"http://172.19.5.35:9536", 2.可以修改node_modules/react-scripts/config/webpackDevserver.config.js 下面代码,添加跨域配置 代码如下: proxy: { '/api/': { target: 'http://172.16.136.249:8080', // 目标服务器 host secure: false, changeOrigin: true, // 默认false,是否需要改变原始主机头为目标URL ws: false, // 是否代理websockets pathRewrite: { // 重写请求,比如我们源访问的是api/data,那么请求会被解析为/api/index/data "/api": "/api/index" }, router: { // 如果请求主机 == 'dev.localhost:3000', // 重写目标服务器 'dev.localhost:3000' 为 'http://localhost:8000' 'dev.localhost:3000' : 'http://localhost:8000' } } }, 使用express
  • 如何在具有easymock的类中模拟静态方法?(How do I mock static methods in a class with easymock?)
    问题 假设我有一个像这样的课程: public class StaticDude{ public static Object getGroove() { // ... some complex logic which returns an object }; } 如何使用简单的模拟方法模拟静态方法调用? StaticDude.getGroove() 。 我正在使用简单的模拟3.0 回答1 不知道如何使用纯EasyMock,但可以考虑使用EasyMock的PowerMock扩展。 它具有许多很酷的功能,可以满足您的需要-https://github.com/jayway/powermock/wiki/MockStatic 回答2 Easymock是用于“用于接口(以及通过类扩展的对象)”的测试框架,因此您可以在没有接口的情况下模拟类。 考虑为您的静态类创建一个带有访问器的接口对象,然后模拟该acessor。 编辑:顺便说一句,我不建议做静态类。 如果您正在执行TDD,最好将所有东西都连接起来。 回答3 以防万一PowerMock由于任何原因而无法使用: 您可以将静态调用移至方法,在测试类中的被测试类的实例化中覆盖此方法,在测试类中创建本地接口,并在overidden方法中使用其方法: private interface IMocker { boolean doSomething()
  • vue-element-adminV4.0版本遇到的一些问题及解决方案
    目录 文章目录 目录V4.0与之前版本的差异修改服务端地址服务端地址前被附加`http://localhost:9527/` 启动工程测试时会打开2个页面同时访问服务端和Mock使用同一个requestMock地址为`VUE_APP_BASE_API`服务端地址为`VUE_APP_BASE_API` 使用2个request 自定义token接收token并保存将token附加到请求的header 动态路由思路404拦截webpackEmptyContext:动态加载失败 命令与配置文件打包发布资源路径不对 V4.0与之前版本的差异 在vue-element-admin V4.0之前的版本,根目录下存在2个文件夹: build文件夹包含构建相关的build及webpack等文件。config文件夹包含各种环境下的配置。 通常地,各种基础设置都能在这2个文件夹下的配置文件中完成。 然而,V4.0版本变化较大: build文件夹保留,但其下只剩了一个index.js文件。config文件夹去掉。根目录下多了2种重要文件:.env.xxx,vue.config.js。 其中,.env.xxx为开发/生产环境的配置文件,vue.config.js为整个工程的全局配置文件。 修改服务端地址 要修改服务端地址,打开.env.development,这是开发环境的配置文件。其下有个配置是: VUE