HTTP API 업데이트 Refit
8674 단어 csharpdotnetaspnetcorerefit
재조정
Refit เป็น 라이브러리 ทำ ทำ ที่ ให้ ให้ เรา สามารถ เรียก ใช้ ใช้ งาน http api ได้ ผ่าน 인터페이스 ของ c# โดย ที่ เรา ไม่ ต้อง มา มา ประกอบ ประกอบ url/헤더/바디 เอง และ และ เอง ครับ ครับ ครับ ครับ ครับ
가이랏
อันดับ อันดับ อันดับ ก็ แรก แรก Nuget 패키지 ของ 리피트 ก่อน ก่อน ครับ เนื่อง ต้องการ ต้องการ ใช้ แบบ แบบ แบบ httpclientfactory เลย ติดตั้ง ตัว นี้ ตัว เดียว เดียว ก็ ได้ ได้
https://www.nuget.org/packages/Refit.HttpClientFactory/
เพื่อเป็นตัวอย่าง สมติว่าผมจะ เรียก Northwind API โดยมี API 엔드포인트 ที่จะเรียกอยู่ 3 ตัว คือ
GET /api/categories
GET /api/categories/{categoryId}
POST /api/categories
โดย response แлะ 본문 ของ POST เป็น application/json มีรูปแบบประมาณนี้
{
name: "เครื่องดื่ม",
description: "ชา กาแฟ น้ำผลไม้ น้ำอัดลม เบียร์ ฯลฯ",
}
จาก api ที่ i มา มา เรา ต้อง แปลง มัน เป็น เป็น 인터페이스 ก่อน ซึ่ง ซึ่ง ก็ จะ จะ คล้ายคลึง กับ การ การ เขียน 메소드 ใน 컨트롤러 ของ asp.net core อยู่ มาก รูปแบบ ก็ จะ ทำนอง ทำนอง นี้ คิด ว่า น่า จะ จับ รูปแบบ รูปแบบ ได้ ได้ ได้ ได้ น่า น่า น่า น่า
public class Category
{
public string name { get; set; }
public string description { get; set; }
}
public interface INorthwindApi
{
[Get("/api/categories"]
Task<List<Category>> GetCategoriesAsync();
[Get("/api/categories/{categoryId}"]
Task<Category> GetCategoryAsync(int categoryId);
[Post("/api/categories")]
Task AddCategoryAsync(Category newCategory);
}
( การเขียน 인터페이스 จะต้อง ใช้ 메서드 ที่ 반환
Task
หรือ Task<T>
เสมอครับ เพราะ Refit ไม่รองราhorบ กียาียน API에 대한 동기화ถ้า ถ้า ถ้า จาก 인터페이스 นี้ นี้ เรา จะ เห็น ว่า ว่า ถ้า เรา มี มี มี มี มี มี นี้ นี้ นี้ และ และ และ และ ตัว ตัว ตัว ตัว ตัว นี่ ที่ ใน ที่ ที่ ที่ นี้ นี้ จะ ใช้ วิธี วิธี วิธี เรียก เรียก ใช้ ผ่าน ผ่าน จึง จึง จึง จึง จึง ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ใน ใน ใน ใน ใน ที่ ที่ ที่ ที่ จึง จึง จึง จึง จึง จึง จึง จึง จึง จึง ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ครับ ใน ใน ที่ ที่ นี้ นี้ จะ ใช้ วิธี วิธี วิธี วิธี วิธี เรียก เรียก ใช้ ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน ผ่าน di ต้องมีการ 등록 서비스 ก่อน โดยในส่วน
ConfigureServices
에서 Startup
클래스services.AddRefitClient<INorthwindApi>()
.ConfigureHttpClient(
c => c.BaseAddress = new Uri("https://northwind.now.sh/")
);
แค่นี้ เราก็จะมี 서비스
INorthwindApi
ที่สามารถ 주입 ไปใช้ใน 컨트롤러 ได้แล้วครับ เช่น เราสามารถสร้าง 컨트롤러 ประมาณนี้ได้[Route("api/categories"]
public class NorthwindCategoryController : ControllerBase
{
private readonly INorthwindApi _api;
public NorthwindCategoryController(INorthwindApi api)
{
_api = api;
}
[HttpGet]
public Task<List<Category>> GetCategoriesAsync()
=> _api.GetCategoriesAsync();
[HttpGet("{categoryId}"]
Task<Category> GetCategoryAsync(int categoryId)
=> _api.GetCategoryAsync();
[HttpPost]
Task AddCategoryAsync(Category newCategory)
=> _api.AddCategoryAsync(newCategory);
}
จะ จะ จะ ว่า เห็น ใช้ ใช้ recit เรา ก็ ก็ ไม่ ต้อง ต้อง ยุ่งยาก การ การ ใช้ ใช้ ใช้ ใช้ httpclient รวม ถึง ไม่ ต้อง จัด การ การ การ 직렬화/사제화 อะไร เลย เลย เลย เลย
Reference
이 문제에 관하여(HTTP API 업데이트 Refit), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ookbee/eriiyk-http-api-yaangsadwkdwy-refit-1f11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)