Giter Site home page Giter Site logo

ahmadnassri / app-restconsole Goto Github PK

View Code? Open in Web Editor NEW
243.0 243.0 60.0 3.55 MB

HTTP Client and Request Visualizer and Constructor tool, helps developers build, debug and test RESTful APIs

CSS 3.80% JavaScript 58.40% XSLT 0.74% HTML 37.05%
app chrome

app-restconsole's Introduction

About Ahmad Nassri

Ahmad is a Fractional CTO, Startup Advisor, and Investor. Leading up to the acquisition by GitHub in 2020, Ahmad served as the CTO for npm, taking over the critical mission of ensuring the Open Source JavaScript registry remains stable, reliable and sustainable for the millions of developers and systems that rely on it daily.

Prior to joining npm, Ahmad led the platform engineering team as Chief Architect for TELUS Digital. As VP of Engineering at Kong, his focus was on powering API-driven development, and open-source technology for the enterprise.

Ahmad founded REFACTOR Community β€” a developer community of over 17,000+ members, operating 4 annual tech conferences in Canada.

app-restconsole's People

Contributors

boulter avatar geetarista avatar rmanalan avatar yerinle 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app-restconsole's Issues

OAuth header

The key values pairs in the OAuth header should be comma-separated

Request parameters end up in oauth 'Authorization' header.

I'm finding that adding a "limit" request parameter means that limit parameter is ending up in the 'Authorization' header.

This is using Rest Console, 4.0.2. I've included the raw request from the Chrome inspector (and removed my oAuth keys).

GET /v2/user/dashboard?limit=1 HTTP/1.1
Host: tumblr:8080
Connection: keep-alive
Authorization: OAuth oauth_signature_method="HMAC-SHA1" ,oauth_version="1.0" ,limit="1" ,oauth_nonce="PvZrN" ,oauth_timestamp="1317829910" ,oauth_consumer_key="..." ,oauth_token="..." ,oauth_signature="...%2Bgs%3D"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1
Content-Type: application/x-www-form-urlencoded
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

Follow Redirects

should be able to customize if redirects are to be followed and set the limit of redirects to follow

Ability to manually specify the content-type of response.

In some cases, have to work with servers who send incorrect header Content-Type. For example received JSON, but Content-Type - text/html. For such cases, it would be useful to override the data type manually.
Especially useful would be that this could be changed after receiving the response. For example you see that type incorrectly recognized, and change it.

Slow parsing of large JSON docs

Using the rest client to perform a GET operation that returns a large JSON, the console gets stuck for quite a few good seconds (sometimes it never gets unstuck).

Performing the same operation on a 'regular' browser window (simple, since this is a GET operation), the browser performs it and shows the result in less than a second.

Unfortunately, I can't provide you with a sample JSON document since this is an internal format in the company, but I hope you'll manage to reproduce it.

Parameters are not being sent when executing POST

This seems odd, but I can't seem to figure out what's happening. I know it's not my code, because the API is still functioning normally when sending requests with both Authorization header and as Querystring.

When sending the request as a GET using Authorization header, all parameters are collected:

object(sfParameterHolder)#31 (1) {
  ["parameters":protected]=>
  array(10) {
    ["username"]=>
    string(4) "myun"
    ["password"]=>
    string(4) "mypw"
    ["module"]=>
    string(4) "v1_0"
    ["action"]=>
    string(14) "authorizeLogin"
    ["oauth_signature_method"]=>
    string(9) "HMAC-SHA1"
    ["oauth_version"]=>
    string(3) "1.0"
    ["oauth_nonce"]=>
    string(5) "Zne77"
    ["oauth_timestamp"]=>
    string(10) "1317847018"
    ["oauth_consumer_key"]=>
    string(15) "my_consumer_key"
    ["oauth_signature"]=>
    string(30) "OtiCKSapvIPjBNFtCwu6hvfuVoI%3D"
  }
}

The breakdown:
+ username/password are sent as Request Parameters under the Request Payload section.
+ module/action are request parameters set by Symfony Framework
+ my controller code grabs the apache headers and adds all of the oauth parameters to the request object

When sending the request as a POST using Authorization header, Request Parameters are missing:

object(sfParameterHolder)#31 (1) {
  ["parameters":protected]=>
  array(8) {
    ["module"]=>
    string(4) "v1_0"
    ["action"]=>
    string(14) "authorizeLogin"
    ["oauth_signature_method"]=>
    string(9) "HMAC-SHA1"
    ["oauth_version"]=>
    string(3) "1.0"
    ["oauth_nonce"]=>
    string(5) "Zne77"
    ["oauth_timestamp"]=>
    string(10) "1317847018"
    ["oauth_consumer_key"]=>
    string(15) "my_consumer_key"
    ["oauth_signature"]=>
    string(30) "OtiCKSapvIPjBNFtCwu6hvfuVoI%3D"
  }
}

This happens when using Authorization and Querystring. For whatever reason, when POSTing, whatever is in the Request Parameters section is not being passed.

URL without protocol is not valid

An error that the URL is not valid when trying to send a request to "example.com".
May be better to just automatically add the "http://" if protocol is not specified in the url.

Need indication of request in progress

Please add a request-in-progress indication (busy indicator). When I submit a GET, POST, etc., if the response is not immediate, then I have no immediate indication that the request was submitted.

A busy indicator, disabling the submit buttons, and adding a cancel button would be great.

Thanks!

HTML View

it would be great if when the response body is html that you could have the option to render the view, rather than syntax highlighting. Reason being that when the server throws an unexpected error the message returned is harder to understand, and we don't erally care abou the code just the message.

Request History

allow to store and revisit previous requests along with custom parameters and headers header.

Request Payload parameters are gone in request.

When I'm using the 'Request Payload parameters' they aren't available in my request to my API.

When performing a POST, my $_POST is totally empty? Also tried the RAW Body Request Payload that gives the same result. Custom Headers are working all right though.
I tried the exact same request with Rest Console 3.0.7 and that's working properly.

I'm using Chrome Rest Console 4.0.2 (the latest version)

Nevertheless great work on the new version!

'Save Defaults' does not store custom headers

What steps will reproduce the problem?

  1. Enter a custom header. (e.g. 'API-Version' - '1.0')
  2. Make some requests to see that it went through.
  3. Click the 'Save Defaults' button.
  4. Restart the browser, open REST Console.
  5. The custom headers has disappeared.

What version of the product are you using? On what operating system?
REST Console 3.0.5, Win7 64b, Chrome 13.0.782.55 beta-m

If user-defined request parameter is multi-valued, only last param value sent

What steps will reproduce the problem?

  1. For Request Params (Body tab), define:
    hobby -> tennis
    hobby -> cooking
    For real, this would be the result of submitting a form with a multiple-selection listbox (for hobbies in this case).
  2. Click on GET button to send request.
  3. Look at Response tab for what happened.

What is the expected output?
In the "Sent Request" textbox, I should see
Request URL: ...some url...
Request Method: GET
Params: {"hobby":"tennis","hobby":"cooking"}

What do you see instead?
Request URL: ...some url...
Request Method: GET
Params: {"hobby":"cooking"}

Only the last parameter value is sent in the request.

What version of the product are you using?
3.0.5

On what operating system?
Windows XP

OAuth Authorization - PLAINTEXT not honored

When using OAuth Authorization, and selecting Signature Method: PLAINTEXT, the request is actually signed as HMAC-SHA1 (oauth_signature_method="HMAC-SHA1").

v3.0.7 in Chrome 14.0.835.35 dev

On multiple OAuth 1.0 requests, nonce & timestamp are reused

In version 4.0.1, when signing a request with OAuth, the same nonce is reused for each request.

The nonce and timestamp are used for every request, unless the user specifically pops open the "oAuth" dialog box and clicks "insert". This makes it difficult to perform multiple requests in succession. Please enable a checkbox to allow for automatic timestamp and nonce generation, or an "update nonce" button that does not require the user to open the dialog box and click "Insert"

Target should be the only section open by default

When opening the new REST Console it is overwhelming. And really the only thing I need on a regular basis is the target and the response. So I'm suggesting to have all of the other sections minimized by default, like the old version. I know I have a few co-workers that have moved on to a different app just because of that.

Support for digest authentication

Hi,

It would be very nice to have digest authentication on the client too. I need to test a few services that uses this kind of authentication.

Thanks

Generate Access tokens from request

While Twitter generates and Access Token, must OAuth 1.0a do not. It would be great if I could enter the request, Access & Authorize urls and the Tokens get generated.

UI suggestions...

not an issue, but UI suggestion.

Can the scroll bar be a bit more prominent? They are a bit subtle.

The "forms" for each section of this great extension takes up quite a bit of space about the RESPONSE. I'm not sure the repeating of the section titles on the right side server a real purpose. takes up a lot of real-estate.

It would make the right panel much easier to read of these section title were removed and the user was to simply use the left panel for navigation.

Just my 2 cents on a great app.

Thank you

version 4.0.2 unfortunately is not as usable as the previous

  • 4.0.2 requires more scrolling
  • 4.0.2 does not support "tabbing" into the next field as all fields are locked by default
  • need an option to hide unnecessary fields (there already is an option for this but not substantial) - i usually use only a few but still have to scroll up and down several times
  • inspecting the response also requires more clicks - need to click for response body, need click for response headers etc. showing all the information (or having a default tab "All info") might not be a bad idea.
  • why not provide an extremely basic just-a-vertical-list-of-fields type of theme for those of us who value efficiency over good-looking skins?

Keep up the good work though. This really is a one of a kind plugin. Thanks!

Hide Password

I would like to see the password field under the Autorization tab as a real password field and not plain text.

Ability to save multiple requests

One feature that is highly desirable for me is to be able to save and load a particular request. I have many REST requests I need to debug fairly regularly.

This is a beautiful console, and I love all the options. The one thing I am missing is the ability to save a request for future reference. I was using the Advanced REST Client (http://code.google.com/p/chrome-rest-client/) but it seems to be gone from the store. I am very glad I have found this alternative, but it's just a pain to have to re-enable all the necessary options on ever request.

Thanks very much in advance,
Brian

A tools tab with common operations available?

What would be really cool would be to have a tools tab with a set of commonly used utilities when using HTTP type resources. Examples of this would be base64 encode/decode, url encode/decode, XML escape/un-escape and UUID generation.

RESTful APIs often require data to be passed in like this so it would be nice to be able to do this sort of thing from within the console interface.

Not sure if this sort of thing is easy to add within a chromium app, however - just a suggestion.

By XML escape I mean converting a string so that it doesn't have any of the XML reserved characters in it. These are: < > & ' "

So:

Becomes:
<top><element attr="boo" /></top>

And vice versa. There's an online example here: http://www.accessify.com/tools-and-wizards/developer-tools/quick-escape/default.php

Will try and think of more tools too and comment here if I do.

Thanks for this chrome app, it's really good. It's taken me a while to move away from Poster in Firefox but this has finally allowed me to make the jump!

explain permissions requested by app

Could you explain why this application requests those permissions?

  • Your data on all websites (medium alert)
  • Your tabs and browsing activity (low alert)

A short word on the chrome webstore description page should be great!

More status indication during connection/post/wait phase

If a url is entered that contains an incorrect port number (e.g. blocked by firewall) then there is no indication that a connection attempt is being made when the Send button is pushed.

Even something as simple as a watch cursor to give some feedback would help. But better would be some sort of status indicator that moved through various phases (e.g. name resolution, connection setup, data send, wait for response, reading response, etc.).

Additionally a count-up timer during this phase, and a final elapsed time indication (from the time the Send button is pushed to when the last byte of response is returned) would be useful.

See the "Poster" extension to Firefox for a similar application with some of the same features.

Support Referer header

Currently Referer header is not supported.
This makes this extension totally useless for some websites.
If this header is added as a custom one, it's omitted.

And yeah, I understand that it's not too easy, to add it because of security limitations.

User interface feedback

Change the theme for the syntax highlighting is a very cool feature.
But we have to always scroll up and down, to see how the theme looks.
Perhaps the choice of theme for syntax highlighting should be near query result.
The option "Hide line numbers" then could be moved down too. With these changes Options part would be much smaller =)

Overall a very nice interface, but the Request part takes up much space in height. You have to scroll very often. It might be worth grouping query options to tabs as it is done with Response (Response Body, Response Headers ...). If we could all put everything on one screen, so just do entirely without scrolling, then I think it would be very cool.

can't fetch raw body from request

Hi, I'm testing the restful service built with zend using rest-console. I have set the GET Request Payload - Raw Body as something like '{"locationId":"33","limit":"5","offset":"0"}', I have set content type for Accept and Content Headers to 'application/json'. But when I fetch the request body in Zend using '$payload = $this->getRequest()->getRawBody();', it return null. Please help. Thank you in advance.

Allow for Cookies to be set

I cannot find an (easy) method to set custom cookies. A set up similar to the form values fields would be nice, where a key and a value are submitted and the correct string is placed in the headers.

separate values in the Authorization header for Oauth request

What steps will reproduce the problem?

  1. Set target as GET https://api.dropbox.com/0/oauth/request_token (See screenshot)
  2. On the Authorization section enter a consumer key
  3. On the Authorization section enter a consumer secret
  4. Hit 'Send'
  5. Response fails with 403. "{"error": "Parameter not found: oauth_consumer_key"}" even though the "oauth_consumer_key" is specified.

What is the expected output? What do you see instead?
See screenshot from my Firefox plugin. The values are "." separated and I am receiving "200 OK" along with the right response in the body.

What version of the product are you using? On what operating system?
Rest console: v3.0.5
Google Chrome version: 12.0.742.68

I've had a quick look at the Oauth 1.0 specification at: http://tools.ietf.org/html/rfc5849

On page 5 it shows comma separated values in the example header provided there. Hope this helps. Cheers

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.