Generate Robust C# Code
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- TypeScript
- Star
- 1.2k
- Fork
- 242
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Improvement Suggestion:
I would have liked the following autogenerated C# for a HTTP POST request with the single parameter err of value + & serialized as x-www-form-urlencoded in the body.
var client = new RestClient("https://localhost");
var request = new RestRequest(Method.POST);
request.AddHeader("postman-token", "da4d0044-61a9-3943-40db-9e753aca6020");
request.AddHeader("cache-control", "no-cache");
Action<string,string> parameter = (name, value) => request.AddParameter(name, value);
parameter("err", "+ &");
IRestResponse response = client.Execute(request);
but what Postman did produce for me was the following C# code:
var client = new RestClient("https://localhost");
var request = new RestRequest(Method.POST);
request.AddHeader("postman-token", "da4d0044-61a9-3943-40db-9e753aca6020");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("application/x-www-form-urlencoded", "err=%2B%20%26", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Rationale
parameter("err", "+ &");is more readable than "[..]err=%2B%20%26[..]". The value,+ &, is more recognizable.- The code is more maintanable. At work, I tried the following development workflow:
(a) Type a minimal working example request into to Postman.
(b) Generate C# code.
(c) Copy generated code to Visual Studio.
(d) Replace example values by C# method parameters.
This workflow failed, because the method parameters were not x-www-form-urlencoded at runtime. Generating UrlEncode() calls would make writing a consumer of a HTTP POST x-www-form-urlencoded API effortless. - This usage of
IRestRequest.AddParameteris encouraged, whereas the currently generated code depends on an internal hack not meant for 3rd party usage.
/// - RequestBody: Used by AddBody() (not recommended to use directly)
App Details:
Postman for Windows
Version 5.3.2
win32 6.1.7601 / x64
Continuation of: https://github.com/postmanlabs/postman-app-support/issues/3870
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu từ entry point tạo snippet C# và so sánh đầu ra form-urlencoded hiện tại với hai ví dụ trong issue, tập trung vào cách tên và giá trị tham số được biểu diễn. Được xem là hoàn tất khi C# được tạo sử dụng các tham số request với mã hóa URL an toàn tại runtime thay vì nhúng một chuỗi body của request đã được mã hóa.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- csharp, typescript
- Lĩnh vực
- devtools, tooling
- Loại issue
- Tính năng
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100