A command-line REPL for RESTful HTTP Services
source link: https://www.tuicool.com/articles/hit/y26R7ri
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
My that's a lot of acronyms. REPL means "Read Evaluate Print Loop." You know how you can run "python" and then just type 2+2 and get answer? That's a type of REPL.
The ASP.NET Core team is building a REPL that lets you explore and interact with your RESTful services. Ideally your services will have Swagger/ OpenAPI available that describes the service. Right now this Http-REPL is just being developed and they're aiming to release it as a .NET Core Global Tool in .NET Core 2.2.
You can install global tools like this:
dotnet tool install -g nyancat
Then you can run "nyancat." Get a list of installed tools like this:
C:\Users\scott> dotnet tool list -g Package Id Version Commands -------------------------------------------------------------------- altcover.global 3.5.560 altcover dotnet-depends 0.1.0 dotnet-depends dotnet-httprepl 2.2.0-preview3-35304 dotnet-httprepl dotnet-outdated 2.0.0 dotnet-outdated dotnet-search 1.0.0 dotnet-search dotnet-serve 1.0.0 dotnet-serve git-status-cli 1.0.0 git-status github-issues-cli 1.0.0 ghi nukeeper 0.7.2 NuKeeper nyancat 1.0.0 nyancat project2015to2017.cli 1.8.1 csproj-to-2017
For the HTTP-REPL, since it's not yet released you have to point the Tool Feed to a daily build location, so do this:
dotnet tool install -g --version 2.2.0-* --add-source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json dotnet-httprepl
Then run it with "dotnet httprepl." I'd like another name? What do you think? RESTy? POSTr? API Test? API View?
Here's an example run where I start up a Web API.
C:\SwaggerApp> dotnet httprepl (Disconnected)~ set base http://localhost:65369 Using swagger metadata from http://localhost:65369/swagger/v1/swagger.json http://localhost:65369/~ dir . [] People [get|post] Values [get|post] http://localhost:65369/~ cd People /People [get|post] http://localhost:65369/People~ dir . [get|post] .. [] {id} [get] http://localhost:65369/People~ get HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Wed, 26 Sep 2018 20:25:37 GMT Server: Kestrel Transfer-Encoding: chunked [ { "id": 1, "name": "Scott Hunter" }, { "id": 0, "name": "Scott Hanselman" }, { "id": 2, "name": "Scott Guthrie" } ]
Take a moment and read that. It can be a little confusing. It's not HTTPie , it's not Curl, but it's also not PostMan. it's something that you run and stay running if you're a command line person and enjoy that space. It's as if you "cd (change directory)" and "mount" a disk into your Web API.
You can use all the HTTP Verbs, and when POSTing you can set a default text editor and it will launch the editor with the JSON written for you! Give it a try!
A few gotchas/known issues:
- You'll want to set a default Content-Type Header for your session. I think this should be default.
- set header Content-Type application/json
- If the HTTP REPL doesn't automatically detect your Swagger/OpenAPI endpoint, you'll need to set it manually:
- set basehttps://yourapi/api/v1/
- set swaggerhttps://yourapi/swagger.json
- I haven't figure out how to get it to use VS Code as its default editor. Likely because "code.exe" isn't a thing. (It uses a batch .cmd file, which the HTTP REPL would need to special case). For now, use an editor that's an EXE and point the HTTP REPL like this:
- pref set editor.command.default 'c:\notepad2.exe'
I'm really enjoy this idea. I'm curious how you find it and how you'd see it being used. Sound off in the comments.
Sponsor: Rider 2018.2 is here ! Publishing to IIS, Docker support in the debugger, built-in spell checking, MacBook Touch Bar support, full C# 7.3 support, advanced Unity support, and more.
Recommend
-
150
HTTPie – command-line HTTP client for the API era HTTPie—aitch-tee-tee-pie—is a user-friendly command-line HTTP client for the API era. It comes with JSON support, syntax hig...
-
42
Today there are no tools built into Visual Studio to test WEB API. Using browsers, one can only test http GET requests. You need to use third-party tools like
-
4
So we have this list of Web sites in Spain which are not completely working properly with
-
8
RESTful 是一种非常流行的软件架构,或者说设计风格而非新的技术标准。提供了一组设计原则和约束条件,主要用于客户端与服务器的交互。RESTful架构更简洁,更有层次,更易于实现缓存等机制。 1.理解RES...
-
8
CRUD, HTTP, and RESTful Routing; the Backbones of the Modern WebAs a student web developer attending Flatiron School’s immersive software engineering course, I have spent the last two weeks learning the basics of Ruby on R...
-
2
跟着 Github 学习 Restful HTTP API 设计2018年1月24日 by anzhihe·0评论 · 1,375 人阅读 ·
-
4
Files Permalink Latest commit message Commit time
-
3
Glassfish 3.1.1: Recovers HTTP Authentication in RESTful Web Service advertisements I´m using HTTP-Authenticati...
-
5
You are running a Clojure microservice on AWS Fargate in a private VPC subnet and want to have a secure REPL access to it, only exposing the port inside the VPC. Moreover you would prefer to use SSM Session and SSM Port Forwarding instea...
-
3
Repl.it, Coding Rooms and Twitter - the loss of free servicesA number of months ago, the K12 CS Ed community was abuzz. It seems that Coding Rooms - an online collaboration and coding platform was closing their free teach...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK