Giter Site home page Giter Site logo

jenius-apps / nightingale-rest-api-client Goto Github PK

View Code? Open in Web Editor NEW
707.0 9.0 36.0 42.05 MB

A modern, resource-efficient REST API client for Windows

Home Page: https://nightingale.rest

License: MIT License

C# 100.00%
uwp restapi windows10 dotnet xaml csharp nightingale-rest-client winui windows11

nightingale-rest-api-client's People

Contributors

alxsmora1 avatar d1vanloon avatar dev-nicolaos avatar dpaulino 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

nightingale-rest-api-client's Issues

Enhancement: Better manage environment support

The manage environments window could use some love in how it manages environments.

  • There doesn't seem to be a way to rename an environment.
  • Would be nice to clone an environment.
  • Environments can get an icon but there is no description of what the icon is and you can't change the icon. Why is there an icon?
  • Longer environment names

accessibility with screen reader

I have tested the application with NVDA screen reader and this app was unusable because the different button have not a label.

Connection Issues while hitting APIs

Receiving the following error while hitting localhost APIs.

An error occurred while sending the request. The text associated with this error code could not be found.

A connection with the server could not be established

SSL validation is turned off!

Add an Html Preview for response body

Request response can only be viewed as text. json, xml or raw html, and raw bytes.

There should be an option to display a web preview of the data if it's html.
asp.net and many other webservices return an html response for errors - and it would be a lot easier to view those errors if I could display a rendered website.

Search dialog is not getting focus on ctrl+f

Hi Daniel,

I would like to report a bug. When I try to search in the response json I use ctrl+f shortcut on my keyboard. The Search dialog is opened however it doesn't have focus. So when I start typing I usually end up editing the response body.

I'm using 3.2.4.0

Thank you!

Bug: Moving requests around makes sometimes the app crash

Hi Daniel!

I found a bug (and another on that may be related (or may not)). Please, take a look:
Nightingale-REST-API-Client-2020-01-22-12-36-13

  • Despite the fact i'm not (yet) a premium user, i'm able to import collections of 5+ items.
  • When I try to add a new request to this collection, it fires an error "Please buy premium to do so", hover I can move requests inside. Then, when I move it around, sometimes it works, and sometimes, the app crash. Due to the fact i'm not premium? (or it's related to the fact it's scrolling in the same time?)

Note: it's pretty hard to see it, but it crashed. You can notice because the mouse, for a few moment, loads then everything stops because I recorded it using windows 10 game bar

Thanks!

Can not connect to REST services on local network and domain-joined hosts

When trying to call a REST service residing on the local or domain-joined network I get the following error message:

An error occurred while sending the request. The text associated with this error code could not be found.

A connection with the server could not be established

Using the command checknetisolation debug -p=S-1-15-2-2472482401-1297737560-3464812208-2778208509-1273584065-1826830168-474783446 I was able to get the following output which basically states that the capabilities for PrivateNetworkClientServer are not enabled in the .appxmanifest file:

C:\WINDOWS\system32> checknetisolation debug -p=S-1-15-2-2472482401-1297737560-3464812208-2778208509-1273584065-1826830168-474783446

Network Isolation Debug Session started.
Reproduce your scenario, then press Ctrl-C when done.
      Collecting Logs.....

Summary Report

Network Capabilities Status
----------------------------------------------------------------------
    InternetClient                Not Used and Insecure
    PrivateNetworkClientServer    Missing, maybe intended


Detailed Traffic Report
----------------------------------------------------------------------

    InternetClient                Not Used and Insecure

 ------------------------------------------------------------------


    PrivateNetworkClientServer    Missing, maybe intended

 ------------------------------------------------------------------
      <ip address of host>

OK.

Please enable this capability for us to be able to call REST services on the local network.

Bug: variables doesn't seem to work in Auth tab.

Hi Daniel!

I would like to submit a bug i'm facing right now. I have an environment with variables. Those variables, when templated like {{this}} work well when it's in the URL.

image
Screenshot of Nightingale with correct inputs and correct output.

{{frontname}}:{{apiMgrPort}} is correctly translated and my request works.

However, when I replace my Auth credentials:
image
Screenshot of Nightingale with correct inputs and incorrect output.

Well, it doesn't work anymore.
My base environment does have the right values:
image
Screenshot of my Nightingale base environment variables.

Did I do something wrong, or maybe is it not yet supported?

EDIT: I'm using Nightingale 3.2.4.0.

Thanks!

Feature request: Add File Upload support on requests

Hi!

I give a try to Nigthingale REST API Client (Preview) and I love how smooth, clean and beautiful the application have been evolved, one of the best UWP app sample, but I have a problem when I needed to create a request with file upload, so, sadly, I have to migrate to Insomnia App that offer the support for file uploads with Multipart Form. I would like to return to Nightingale if a similar feature are going to be implemented, until then I'll waiting for it.

Feature request: add changelog

Hi,

I'm interested in new features of Nightingale. However Microsoft Store doesn't provide release information.

It could be nice to add 'Changelog' tab to 'Setting' panel.

Also a 'What's New' panel could pop up when new version of Nightingale launch for the first time.

Regards

OAuth 2.0 Client Credentials Flow Failing

From my reddit post:

I just tried this out... I really like the idea for the auth feature ; but for some reason I keep getting a restsharp exception (invalid scope) . My company uses standard oath 2.0 using identity server 3; so it should be working .

I tried to see what’s being sent across the wire , but for some reason the request does not get sent when I open fiddler (admittedly I didn’t look too far into it ).

Here is a screenshot from Postman:

image

And from Nightingdale:

image

Here is the error text:

{"error":"invalid_scope"}

   at Nightingale.HttpClients.RestSharpClient.RestSharpAuthenticator.<GetAccessToken>d__2.MoveNext() + 0x353
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x5c
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x44
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task) + 0x1c
   at Nightingale.HttpClients.RestSharpClient.RestSharpAuthenticator.<GetOAuth2Token>d__1.MoveNext() + 0x214
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x5c
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x44
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task) + 0x1c
   at Nightingale.ViewModels.AuthControlViewModel.<FetchToken>d__73.MoveNext() + 0xd6

Significant lag on large resultset

There is significant lag when trying to select and copy a text response that is large. The size of the result back is 362.279 KB; when trying to select a value from the response, Nightingale locks up and is not usable for a good several minutes. Currently consuming 400 MB of RAM and constantly using ~18% CPU on a Core i7 quad core machine with 32 GB of RAM.

Workspace changes not auto saved when application gracefully crashes

When the app crashes I lose everything that was set up since the application was last closed. I added a collection with a couple of requests, set up my environment/filled in my variables etc. and then ran the first request. It submitted to my api server and appeared to process successfully there however Nightingale decided to pop up an error stating it has to shut down because it couldn't parse the uri (or something to that effect). After acknowledging the error message, nightingale closed as it suggested it would and helpfully discarded all of my unsaved work.

Some potential improvement suggestions:

  • Cache unsaved workspace changes: effectively auto save every change as it happens (instead of on close), but just cache this in a temporary file rather than updating the current workspace. That way unsaved changes can be recovered later if necessary (or easily discarded if not) without overwriting the saved workspace. The saved workspace can still then be updated with the "save on close" setting as per normal and the cached version can be removed until there are further changes.

  • Have the app honor the "save on close" setting and attempt to save the workspace when it needs to shut down. If the application is aware enough to tell me it's about to crash, it should be aware enough to save the workspace first. Even better, the "I'm about to crash" dialog could give the option to save (probably "save as") or discard changes before closing.

I will try to do some debugging and get a repro for the invalid uri parsing crash once I get my workspace set back up. Then I can file a new issue for the crash specifically as the request definitely made it to my server before nightingale decided the uri couldn't be parsed so that seems a bit off.
EDIT: My crash issue seems to be covered by #31 so I will update there if I find any more details.

Version info: Nightingale (free) v3.2.1.0

Feature request: Word Wrap

Hi, just wanted to start by saying, great app! Paid for premium and amazed at the quality and functionality of it all.

One recommendation I'd like to make is to add a word wrap option to the Body section when sending a POST so that all the text can be seen together without needing to scroll.

I tried to scroll with the middle button of my mouse but that hasn't worked either, so it's been sort of a pain to drag the horizontal scroll on the bottom left and right to see everything.

It would be great to see word wrap functionality. Thanks!

Bug: Creating a new request item doesn't update list selection on left

If I have a current request selected, and then I create a new one (or duplicate an existing one), the form updates to show the blank/duplicate info, but the list on the left doesn't select the new item. This makes it confusing to see that it's currently on the new request. It also makes it hard to switch back to the one that's still selected, as you have to click twice (off of it and back again).

v3.2.1.0

Inherit authentication from collection

One of the features from Postman which I miss a lot in Nightingale is the possibility to inherit authentication options from a collection.

For example: If I have a collection with REST request for my ElasticSearch cluster, I need to set the authentication in every request in the collection.

What I want: Set the authentication information once in on the collection level and all requests in the collection are inheriting the authentication information with a simple "inherit from collection" flag. With that I need to only provide the information once.

Bug: GET requests doesn't send request body

It may seem strange to send body with GET requests but it is actually supported by HTTP standard and actively used by Elasticsearch (https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html).

What you expect to happen:
Called server receives GET request body.

What actually happens:
Body is empty on received GET requests.

Reproduction steps:
Create new GET request, select Body tab, then JSON, input request body and press Send.

Feature request: backup data

Some customers have requested having the ability to backup their Nightingale data to a file or perhaps back it up to OneDrive

Use environment variables to affect URL structure

My REST API returns the URL of a newly created resource via the Location header which I can extract into an environment variable using the "Chains" feature, however it seems that you can only use environment variables inside the body and maybe even query values, but I can't just use it as part of the URL.

Here's the scenario I'm looking to achieve:

As a result of a POST in Request A, the service returns the header Location: http://localhost:1234/whatever/id123. I set up a Chain as part of Request A to extract request.Headers["Location"] into a variable named CurrentWhateverUrl. I then want to be able to define a Request B whose URL is simply {{CurrentWhateverUrl}}, but that leads to the following error: "Invalid URI: The hostname could not be parsed."

Feature Request: Debug Mode

There are occasions where Executing a rest call in nightingale will result in an error or

"An error occurred while sending the request. The text associated with this error code could not be found.

A connection with the server could not be established"

A debug mode on startup or in the settings of the application could help track down the issue. Currently, i have to replicate my rest calls to another client ( insomina) to make sure the calls are not erroneous.

Bug: Horizontal scroll is jerky in the response body pane

Horizontal scroll is behaving strangely in the response body pane: it doesn't scroll continuously, but rather stops right after scrolling a few pixels. So basically, if I want to scroll all the way to the right side, I have to perform several scrolling gestures on the touchpad.
It seems to be working correctly in other panes and in the pane headers.

Hardware: Dell 7400 laptop with precision touchpad
Windows: 1909, build 18363

Feature request: GRAPHQL support

Hi. I'm liking Nightingale for its aesthetics and clever features. Is there any plan to support GRAPHQL a la Insomnia ? That is one thing that I really would love to see implemented.

Thanks for the great work --

Abnormal exit

When I call the environment variable and send it, an error is reported。
Snipaste_2019-12-19_19-54-55
Snipaste_2019-12-19_19-55-56

Request on localhost not working

Trying do perform a request on a localhost spring boot server with nightingale. The request times out, however, with postman the exact same request works as expected.

Light theme bug: text selection in Body: form-data tab

There is a bug with text selection on some tabs in the light theme.
"body -> form-data -> value" selection issue screenshot:
image

For your convenience I have double checked all other tabs and selections as well and it seems this is the only issue
Here is all tabs that I have tested:
Queries: [
Key + ;
Value +
]
Auth: [
Basic + ;
Oauth 1.0 + ;
Oauth 2.0 ;
Bearer +; Digest +
]
Headers: [
Key + ;
Value +
]
Body: [
Json + ;
XML + ;
x-www-form: [
Key + ;
Value +
] ;
form-data: [
ContentType + ;
Key+ ;
Value -
]
Chain: [
Variable to update + ;
Response property +
]

Bug: Connection issues

I'm connected to my domain joined network via VPN and I'm getting similar errors to what issue #11 mentioned. I've tried turning off the SSL validation.

Here is screenshot showing the results working in Postman and the browse but not in Nightingale.

image

Let me know if you need more information.

Thanks

URL display/edit not visible at narrower widths

At narrow window widths (useful for e.g., keeping nightingale side-by-side with some other app on smaller monitors - like a web browser, file explorer, terminal, IDE for the app I'm testing, etc.) the base query URL doesn't appear at all (as shown in the screenshot). This both makes the app less useful in this situation, but also it was just really confusing for me as there's no indication of what is going on. Especially with the URL display under the "Queries" section that looks like it should be editable but isn't, I spent a while clicking around not sure what to do before I tried expanding the window.

image

I'm not really able to think through the pros and cons of solutions/mitigations to this problem right now (so not saying everything on the list is necessarily a good idea) but you might consider one or more of:

  • Putting the URL on another line at narrower widths
  • At narrower widths, turning the URL field into an icon ("://" maybe?) which opens an editing flyout
  • Auto-collapsing/expanding the left sidebar based on width (maybe giving it more NavView-like behavior and design?)
  • Reducing the "priority" of other elements on the line (verb selector, send button, perf display), maybe collapsing these to an icon at narrow widths as well
  • Having just one URL display box which is editable and syncs in real time with the key-value query displays (this might be less confusing, seems to be what postman does)

If you're still reading this, thanks for the app which I definitely like a lot in general!

Request Headers doesn't allow to set a charset

Hi Nightingale,

I am currently working on an integration with Pocket API, and it seems that I have found a peculiar issue
Here is an authorization API
https://getpocket.com/developer/docs/authentication

It states that basically 2 Headers have to be included in first POST request
Content-Type: application/x-www-form-urlencoded; charset=UTF8
X-Accept: application/x-www-form-urlencoded

Here is a setup in Nightingale
image

And here is a body:
image

I am trying to send request and getting 406 error instead.
When returning to the Headers tab, I can see that Content-Type is missing 'charset'
image

The thing is that I have done this previously in postman, and I have a .net UWP app that basically does the same thing and they both can send this request just fine, so I am assuming this is somehow related to Headers setup.

I haven't found another place where I would be able to provide a charset manually so this proves to be quite an issue

LiveId collections sync

Currently the only way to sync collections is to export file and save it to Onedrive, and then to open it in the app on another PC. It works, but it is a bit of a hassle for someone who constantly swithces between working from home/office and different PCs. It would be nice to have some sort of a Sync option inside the app(although it might be onedrive-file based) based on currently used LiveId.
This is a minor enhancement

Feature request: Postman URI handler

Now that Nightingale is rolling out Postman collection importing it would be nice if it could register itself as a URI handler for "postman://" collection URIs. Postman collections are generally distributed via their own public site and are designed to be imported directly into Postman by launching a specially crafted URI that triggers an import into the Postman app. They give no direct download or export option from the distribution site (annoying, but it is what it is) so currently the only option to import these API collections into Nightingale would be to use either the depreciated Chrome extension or the Postman app and export the collection into JSON that could then be imported into Nightingale. This is not ideal and largely defeats the purpose of having Nightingale installed since Postman would also need to be on the same system.

Postman API collections are distributed here. An example URI for the Auth0 collection would be:

postman://app/collections/import/3967924-5bd51261-1bf3-03e4-b6b9-4e5fa5f59e6a-RW1Yq1C4?referrer=https%3A%2F%2Fexplore.postman.com%2Fapi%2F6%2Fauth0-authentication-api&versionTag=latest#?

Each collection has a unique UID that it is linked to and is used to identify the collection. This is outlined here in Postman's API documentation and it seems this is carried over into the URI schema that's used to launch an import command from within Postman.

I don't know if Nightingale could support this, but this would greatly reduce friction in switching API clients and immediately provide access to a vast network of already fleshed out API collections for developers to use. If there's one thing Postman is good at, it's getting the big companies on board with publicizing API documentation in a client-readable format and Nightingale needs to be able to benefit from this network.

[Bug] Some fields of Form Data aren't responding correctly.

I made the same request on two clients: Nightingale and Insomnia. Compare the responses.

image

Some fields on Nightingale look like weren't sent. It's a bug or I missing something? I tried to complete the content type fields too, but it didn't work.

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.