jenius-apps / nightingale-rest-api-client Goto Github PK
View Code? Open in Web Editor NEWA modern, resource-efficient REST API client for Windows
Home Page: https://nightingale.rest
License: MIT License
A modern, resource-efficient REST API client for Windows
Home Page: https://nightingale.rest
License: MIT License
The manage environments window could use some love in how it manages environments.
I have tested the application with NVDA screen reader and this app was unusable because the different button have not a label.
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!
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.
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!
Add an autosave option, so that I don't lose my new or modified requests and collections when I close the app and forgot to save.
Hi Daniel!
I found a bug (and another on that may be related (or may not)). Please, take a look:
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!
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.
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.
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:
Screenshot of Nightingale with correct inputs and incorrect output.
Well, it doesn't work anymore.
My base environment does have the right values:
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!
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.
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
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:
And from Nightingdale:
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
It would be nice if there was an import functionality to migrate from Postman.
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.
A customer reported a crash when pressing the fetch token button for OAuth 2.
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
Awesome design but it would be really handy if i could import my giant REST API from the auto-generated swagger definition!
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!
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
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.
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.
I see there is a feature to generate code for a particular request for C# using RestSharp. It would be nice if there was another option for C# based off the HttpClient in .NET Core.
Some customers have requested having the ability to backup their Nightingale data to a file or perhaps back it up to OneDrive
Templates would allow reusable services that can exist in multiple Collections. Services added to Collections would be immutable, meaning changes are only allowed in the Service definition which ensures that tests run across Collections are always in sync.
As a developer I want to import/export HAR archive so that i can debug REST api's.
For now, every major http debugging tool have this ability.
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."
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.
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
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 --
Hi,
I really love the Nightingale app, but it would be great if I can test an request with multiple input values
Sort items alphabetically for:
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.
The importing of workspace/ collection data from Postman isn't working with a message of Unsupported collection version | unknown type | <filename>
.
Exported from Postman 7.15.0 on Windows x64, trying both the Download only my data
and Download all data including data in workspaces I have joined
options.
There is a bug with text selection on some tabs in the light theme.
"body -> form-data -> value" selection issue screenshot:
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 +
]
It would be nice if Nightingale informed the user about the necessary workaround command when trying to access a resource in localhost.
It can be done for example by detecting "localhost" in the address bar and then triggering the warning.
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.
Let me know if you need more information.
Thanks
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.
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:
If you're still reading this, thanks for the app which I definitely like a lot in general!
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
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'
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
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
Would be useful to display the response time in Log window (so don't need to click on the response icon each time)
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.
Prompt when deleting:
It would be great to have the ability to import data from Insomnia (a popular REST-client similar to Postman) https://insomnia.rest/
Here's the description of the export format: https://support.insomnia.rest/article/52-importing-and-exporting-data
Thank you.
Ability to have multiple workspaces with different requests/collections/environment variables in each request.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.