GithubHelp home page GithubHelp logo

mocker's People

Contributors

gregoryvit avatar lastsprint avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mocker's Issues

Добавить возможность загружать картинки и получать их url

Было бы здорово, если у мокера была функция, которая бы позволяла получить путь до картинги без авторизации и использовать этот URL в ответах мокера.

Например, у меня есть картинка, я её загружаю в мокер и она имеет адрес:
https://r2.mocker.site.ru/files/android/memes/mem1.jpg.

После, где-нибудь в ответах мокера, я бы использовал эту ссылку на картинку:

  "url": "/site/v1/new/mobile-images",
  "method": "GET",
  "statusCode": 200,
  "response": {
    "android": {
      "name": "mem1",
      "url": "https://r2.mocker.site.ru/files/android/memes/mem1.jpg"
    }
  }
}```

Поправить маппинг реквестов по шаблону

Если одно из полей содержит парные фигурные скобки, то в ответе будет только соответствующий респонс данному моку независимо от фактического реквеста.

Например, в моке есть конфигурация

"request": {
        "comment":"1",
        "order_id" : "45139934",
        "rating":3
    },
    "response": {
        "error_message": "Первый тип ошибки"
    }

и второй вариант

 "request": {
        "comment":"{}",
        "order_id" : "45139934",
        "rating":3
    },
    "response": {
        "error_message": "Второй тип ошибки"
    }

Если остальные значения мокового реквеста (поля order_id и rating) будут совпадать с фактическим реквестом, тогда независимо от значения comment реквеста в респонсе всегда будем получать "Второй тип ошибки", так как comment в моковых данных содержит {}.

Также хотелось бы иметь возможность дизейбла парсинга шаблонов по {} в строках значений моков, например, пусть по умолчанию они будут включены, но можно также выключить - это будет очень полезно для возможности моков graphQL-запросов (с ограничениями). Например:

 "request": {
        "query":"{users{_id name}}"
    },
    "response": {
        "data": "Success"
    }

и

 "request": {
        "query":"{users{_id name lastname}}"
    },
    "response": {
        "data": "Not found"
    }

Сейчас это работать не будет: из-за наличия парных скобок {} будем безусловно возвращаться мок респонса, имя файла которого будет найдено первым (независимо от значения query)

Failed to marshal fields to JSON

Пытаюсь собрать моки используя как кэширующий прокси.

POST /api/v1/muv/public/mobile_versions HTTP/1.1
Host: pre-tochka15.bank24.int:443
User-Agent: Tochka/1.0.0 (com.tochka.oneandhalf; build:34; iOS 13.3.0) Alamofire/4.9.1
Transfer-Encoding: chunked
Accept: application/json
Accept-Encoding: gzip;q=1.0, compress;q=0.5
Accept-Language: en;q=1.0, ru-RU;q=0.9
Connection: keep-alive
Content-Type: application/json
X-Client-Time: 2020-03-05T11:14:34+05:00
X-Device-Id: 6376D671-4F33-46E1-B887-BD6179FA5D84
X-Device-Locale: en
X-Device-Preferred-Languages: en,ru-RU
X-Screen-Resolution: 375.0x667.0

{"jsonrpc":"2.0","params":{"platform":"ios","version":"1.0.0","channel":"Tochka 1.5"},"id":"D3A6B6D4-9E8F-481C-BE94-73E3C6D7FB58","method":"check"}
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 05 Mar 2020 06:14:34 GMT
Content-Type: application/json
Transfer-Encoding: chunked
X-Request-Id: pre-ngs-bank202-dcdp.bank24.int-454495846595a7fa5f0a5b475a30939e
Content-Encoding: gzip
X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Connection: keep-alive

{"id":"D3A6B6D4-9E8F-481C-BE94-73E3C6D7FB58","jsonrpc":"2.0","result":{
  "title": null,
  "description": null,
  "need_hard_update": false,
  "need_soft_update": false
}}

В логе вижу ошибку

Failed to obtain reader, failed to marshal fields to JSON, json: unsupported type: func() (io.ReadCloser, error)
/api/v1/muv/public/mobile_versions

Добавить возможность считывания хедера с request

Сейчас можно в зависимости от того, какое body отправили, показывать соответствующий мок.
Можно было бы сделать тоже самое, но считывать значение с хедера запроса.
Пример:

{
  "url": "/auth/logout",
  "method": "POST",
  "statusCode": 200,
  "isExcludedFromIteration": true,
  "requestHeaders": {
    "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiZXhwIjoxNTE2MjM5MDIyfQ"
  },
  "response": {
      "message": "Успех"
  }
}

Этот мок будет возвращаться, только если в запросе будет соответствующий хедер.

Добавить опцию в режиме проксирования "не создавать новые моки на запрос, если моки уже существуют"

Было бы удобно иметь возможность через хедер настраивать стоит ли в режиме проксирования добавлять новые моки на запросы, для которых моки уже есть, или нужно записывать только новые ответы.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.