Giter Site home page Giter Site logo

tiagohm / restler Goto Github PK

View Code? Open in Web Editor NEW
144.0 10.0 25.0 2.99 MB

Restler is a beautiful and powerful Android app for quickly testing REST API anywhere and anytime.

Home Page: https://tiagohm.github.io/restler

License: MIT License

Kotlin 0.01% Swift 0.04% Objective-C 0.01% Shell 0.05% Dart 99.89%
android-app flutter dart rest-client rest http-client gzip deflate brotli http

restler's Introduction

The next version is being developed here https://github.com/tiagohm/restler.next

Restler

Restler has been built with simplicity and ease of use in mind. It allows you send custom HTTP/HTTPS requests and test your REST API anywhere and anytime.

Download

Features

  • Requests you send are automatically saved so that you can come back and review at any time;
  • Save and organize your requests in folders and load requests without writing its attributes again;
  • Favorite requests and folders so they can be shown at the top and accessed quickly;
  • Edit body, url parameters and headers attributes easily;
  • Parses and displays the complete raw response including headers, cookies, status, etc;
  • Supports gzip, deflate and brotli decompression formats;
  • Restler supports the most common HTTP methods (GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS) and custom methods;
  • Supports Basic, Bearer Token, Hawk and Digest authentication methods;
  • Import collections from Postman, Insomnia (JSON and YAML) or Restler format;
  • Export collections to Postman, Insomnia (JSON) or Restler format;
  • Manage cookies and send them with your request;
  • Quickly copy the response body, headers e cookies received;
  • Autocompletes headers with commonly-used values;
  • Switch easily between HTTP, HTTPS e HTTP2;
  • Beautify the response body received;
  • Use tabs to keep multiple requests open at the same time and switch between them without losing data;
  • Add Client Certificates, Proxy servers and DNS resolvers;
  • Response Caching (RFC 7234);
  • WebSocket & SSE;
  • Workspace;
  • Environment Variables;

Screenshots

Changelog

  • 0.17.x

    • Now, it is open source!!! 🎉
    • Added Connection pool (HTTP session) support 🎉;
    • Added option to keep equal sign for empty query;
    • Added Simplified Chinese translation (Thanks @joytou);
    • Added support to choose directory when exporting a collection;
    • Bug fixes.
  • 0.16.x

    • Added support to Workspaces 🎉;
    • Added support to Environment Variables 🎉;
    • Minor bug fixes;
  • 0.15.x

    • Added support to Response Caching (RFC 7234) 🎉;
    • Added support to SSE (Server-Sent Event) 🎉;
    • Added option to enable cache per request;
    • Added option to enable/disable cookies;
    • Minor bug fixes;
  • 0.14.x

    • Added support to DNS 🎉;
    • Added Timeline feature to Response tab;
    • Optimized to display large response body;
    • Minor bug fixes;
  • 0.13.x

    • Added support to Brotli decompression format 🎉;
    • Minor bug fixes;
  • 0.12.x

    • Added support to proxy 🎉;
    • Added request settings;
    • Added option to configure send cookies per request;
    • Added option to configure store cookies per request;
    • Added support to WebSocket (beta);
    • Minor bug fixes;
  • 0.11.x

    • Added support to import/export Postman collection 🎉;
    • Minor bug fixes;
  • 0.10.x

    • Added support to select & copy the response body 🎉;
    • Added support to import collection from URL;
    • Added support to import collection within a folder;
    • Added support to HTTP2 (experimental);
    • Added support to client certificates;
    • Added support to import/export Restler format (supports encryption);
    • Added light theme 🌞;
    • New HTTP Client library;
    • Added Latin Spanish language (thanks @taksumaki);
    • Added option to change request's User-Agent;
    • Added option to choose request body content-type;
    • Made various UI enhancements;
    • Improved performance;
    • Made various bug fixes.
  • 0.9.x

    • Added support to multiple tabs;
    • Added ability to restore automatically last tabs on startup;
    • Improved performance;
    • Minor UI fixes;
    • Minor bug fixes.
  • 0.8.x

    • Added ability to choose which cookie will be sent;
    • Added ability to not save requests to history;
    • Added ability to save response body as file;
    • Added support to limit the history size;
    • Added donation button to support this app development;
    • Added new logo;
    • Minor UI fixes;
    • Minor bug fixes.
  • 0.7.x

    • Added option in Settings to allow send requests over Wi-Fi only;
    • Added support for responses that return images (JPEG, PNG, SVG, WEBP);
    • Minor UI fixes;
    • Minor bug fixes.
  • 0.6.x

    • Added Digest authentication method;
    • Added ability to beautify the response body for JSON;
    • Added ability to copy headers and cookies values from response;
    • Added support to automatically handle request redirects;
    • Added max redirects option in Settings;
    • Added option to disable following redirects in Settings;
    • Minor bug fixes;
    • Minor UI fixes;
  • 0.5.x

    • Added ability to syntax highlight the response body for JSON;
    • Added Brazilian Portuguese language;
    • Minor bug fixes;
    • Minor UI fixes.
  • 0.4.x

    • Added support to manage cookies;
    • Added support to import cookies from Insomnia;
    • Added support for exporting Insomnia formats;
    • Minor bug fixes;
    • Minor UI fixes;
  • 0.3.x

    • Added ability to duplicate requests;
    • Added autocomplete support for header fields;
    • Added support for importing Insomnia formats;
    • Added option to reset file for Multipart Form field;
    • Added support for custom HTTP methods;
    • Added Hawk authentication method;
    • Added ability to hide keyboard if user clicks out of input;
    • Minor bug fixes.
  • 0.2.x

    • Added Multipart, Form Url Encoded and Binary File Request Body Type;
    • Added button to cancel the current request;
    • Added numeric counter on Request's Body tab;
    • Minor bug fixes.
  • 0.1.x

    • Initial Release.

Privacy Policy

LINK

restler's People

Contributors

tiagohm 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

restler's Issues

Variáveis de Ambiente

Plano de Implementação das Variáveis de Ambiente

  • Cada workspace tem um ou mais ambientes (e apenas um será selecionado);
  • Abaixo do dropdown de workspace, terá outro dropdown listando os ambientes disponíveis e o ambiente selecionado
  • Caso nenhum ambiente esteja selecionado exibir label "No environment"
  • Um tela listará todos os ambientes do workspace atual, contendo:
    • Filtro de busca
    • Limpar tudo
    • Excluir um ambiente
      • Excluir também todas as suas variáveis
    • Editar nome
    • Duplicar
      • Duplicar também todas as suas variáveis
    • Mover ou copiar para outro workspace (copiar também todas as suas variáveis)
  • Cada workspace tem um ambiente global
  • Uma variável pertence ao ambiente global se (var_environment = null)
  • Excluir um workspace, exclui seus ambientes (e suas variaveis)
  • Um tela listará todos as variáveis de um ambiente, contendo:
    • Filtro de busca
    • Limpar tudo
    • Excluir uma variável
    • Editar nome e valor
    • Duplicar
  • Adicionar info de como utilizar variáveis, onde a lista é vazia
  • Resolver as variáveis ao enviar a requisição:
    • Body Text
    • Body Multipart (name, value)
    • Body Form (name, value)
    • Query (name, value)
    • Header (name, value)
    • Basic Auth (username, password)
    • Digest Auth (username, password)
    • Bearer Auth (token, prefix)
    • Hawk Auth (id, key, ext)
    • URL
  • Exportar e importar do Insomnia
  • Exportar e importar do Postman
  • Exportar e importar do Restler
  • Ver um modo de autocompletar com as variáveis de ambiente (exibir nome e valor)
  • Dar suporte a variáveis dinâmicas do Postman
  • Corrigir enviar scheme usando auto e variável
  • Secret Variable. (Exibir como password na edição e na visualização)
  • Habilitar variáveis nas configurações da requisição (#40)
  • Permitir chamar variáveis em outras variáveis (de forma recursiva)

Agrupar a lista de histórico

  • Agrupar por:
    • Por data (mais recente, mais antiga);
    • Por método HTTP;
    • Por domain (order crescente, ordem decrescente).
  • Permitir remover todos os itens de um determinado agrupamento;

NoSuchMethodError: The method '<' was called on null

NoSuchMethodError: NoSuchMethodError: The method '<' was called on null.
Receiver: null
Tried calling: <(3)
  File "import_export.dart", line 149, in InsomniaImporter.importFromMap
  File "import_export.dart", line 137, in InsomniaImporter.importFromText
  File "collection_bloc.dart", line 186, in CollectionBloc._importCollectionFromFile
  File "collection_bloc.dart", line 158, in CollectionBloc._mapCollectionImportedToState
  File "collection_bloc.dart", line 51, in CollectionBloc.mapEventToState

Ideas & Likely New Features

  • (1) "Import collections from Postman";
  • (2) "Import collections from Dropbox or git";
  • (3) "Save collection to Google Drive";
  • (5) "Allow HTTPS requests to servers with self signed (insecure) certificates";
  • (6) "Allow text response to be selectable";
  • (7) "The type of scroll bar that you can grab and pull up and down to scroll quicker";
  • (8) "The ability to switch between base URLs, so that I can switch between making a request to dev, staging, production, etc";
  • (9) Allow to remove multiple selected items;
  • (10) "Ability to resize JSON body font size";
  • (11) "Ability to change color scheme of JSON body";

Formato Restler (.restler)

  • Será usado para exportar e importar apenas dentro do aplicativo;
  • Permite criptografia;
  • O formato será:
{
    "encrypted": true,
    "data": "json object or encrypted base64"
}
  • O campo data terá o seguinte formato:
{
  "folders": [],
  "requests": [],
  "cookies": [],
}

Variables Import

Hi,

This will be like a suggestion if it can be done.

Similar to insomnia which you can put the Environment Variables, is there anything like this
in Restler?

As my imported JSON file came from Insomnia, I have put the HOST and the TOKEN (authorization token header) as an Environment Variable so I don't have to copy these values to every single API that I made. Without this, the imported JSON file is almost no use.
ex: http://{{ host }}/api/something - host came from the ENV of insomnia.

Thank you again for fixing the issue #52 , I can import the JSON file now.

Cannot import JSON file from Insomnia

JSON file import not working. No error messages return.

The file came from Insomnia, exported as JSON then tried importing to the collection section of the app.

Can't provide other details as there are no error messages that appears after selecting the JSON file to open.

Proxy

  • Ver como será feito. Basear-se no Insomnia ou Postman?

Permitir múltiplas abas

  • Deve pelo menos ter uma aba padrão. Quando a última for removida, inserir uma nova aba vazia;
  • O item do dropdown terá no lado direito um botão:
      • Renomear aba;
      • Botão fechar.
  • No menu, adicionar as opções:
      • Nova aba;
      • Fechar aba;
      • Duplicar aba;
      • Reabrir aba fechada (em um futuro não muito distante).
  • Adicionar nas configurações se deseja perguntar toda vez que fechar uma aba com um requisição não salva;
  • Todas as abas abertas serão salvas e a atual será reaberta quando abrir o aplicativo (#29);
  • Adicionar opção "Open in new tab" no histórico e chamada;
  • Não abrir duas abas que apontam para a mesma chamada;
  • Sugerir o nome da aba como nome da chamada a ser salva;

Presets

  • Predefinições de Query, Header e Auth que serão reutilizáveis entre várias requisições;

Suporte para GraphQL

Restler deveria oferecer um melhor suporte para queries de GraphQL, adicionando características tais como um campo de texto para query variables e suporte para formatar el body no formato de GraphQL.

Sincronização com GitHub/GitLab

  • A sincronização necessita dos seguintes dados: ws_sync_token, ws_sync_username, ws_sync_repo, ws_sync_branch, ws_sync_repo_type, ws_sync_password, ws_sync_enabled;
  • Pegar todos as pastas, chamadas, cookies, ambientes, variáveis, workspaces, etc e exportar como Restler (com opção de criptografar);
  • Na sincronização (upload), comitar em um arquivo no repositório a cada salvamento (criação, edição e remoção);
  • Na sincronização (download), puxar o arquivo, comparar se a entidade foi criada ou removida;
  • O tempo da sincronização automática é de 30s;
  • Se uma aba estiver atrelada a uma chamada, atualizar os dados dela, quando ocorrer a sincronização;
  • A sincronização é por workspace;
    • Cada workspace pode desabilitar a sincronização;
    • Cada workspace terá um arquivo chamada uid.json ou restler.json no repositório;
    • Sempre que trocar de workspace, realizar a sincronização;
    • Ao excluir um workspace, excluir o arquivo no repositório;
    • Um botão de sync (para sincronização manual) ficará ao lado do dropdown de workspaces;
  • Não sei como resolver os conflitos!

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.