4 + 메소드가있는 서비스가 있다면 실제로 4+ 서비스 클래스를 만들 필요가 있고 4+ DTO 요청과 4+ 응답 DTO가 필요하다고 상상할 수 없습니다.
아니요. 네 가지 방법으로 하나의 서비스 클래스가 필요합니다. 각 메소드는 물론 Dto를 요청하고 응답 Dto를 반환합니다. 내가 중첩 된 클래스로 요청 및 응답 DTO들을 넣었습니다
public class ProductsService: Service
{
[Route("/products")]
public class GetProductsRequest: IReturn<List<ProductResponse>> {}
public class ProductResponse
{
public int Id { get; set; }
public string Name { get; set; }
}
public object Get(GetProductsRequest request)
{
IEnumerable<ProductResponse> response = ...
return response;
}
[Route("/products/{id}")]
public class GetProductRequest: IReturn<ProductResponse>
{
public int Id { get; set; }
}
public object Get(GetProductRequest request)
{
ProductResponse response = ...
return response;
}
[Route("/products")]
public class CreateProductRequest
{
public string Name { get; set; }
}
public object Put(CreateProductRequest request)
{
... create the product here
return new HttpResult { StatusCode = HttpStatusCode.Created };
}
[Route("/products/{id}")]
public class UpdateProductRequest
{
public int Id { get; set; }
public string Name { get; set; }
}
public object Patch(UpdateProductRequest request)
{
... update the product here
return new HttpResult { StatusCode = HttpStatusCode.Accepted };
}
[Route("/products/{id}")]
public class DeleteProductRequest
{
public int Id { get; set; }
}
public object Delete(DeleteProductRequest request)
{
... delete the product here
return new HttpResult { StatusCode = HttpStatusCode.Accepted };
}
}
: 분명히 몇 가지 방법에 대해 당신이 응답 예를 들어
DTO 필요하지 않을 수도 있습니다, 여기에 추천 방법과 일반적인 서비스가 보일 수 있습니다 방법 이 서비스를 별도의 파일에 두는 것이 더 읽기 쉽도록 만들 것입니다.
public class ProductsService: Service
{
public object Get(GetProductsRequest request)
{
IEnumerable<ProductResponse> response = ...
return response;
}
public object Get(GetProductRequest request)
{
ProductResponse response = ...
return response;
}
public object Put(CreateProductRequest request)
{
... create the product here
return new HttpResult { StatusCode = HttpStatusCode.Created };
}
public object Patch(UpdateProductRequest request)
{
... update the product here
return new HttpResult { StatusCode = HttpStatusCode.Accepted };
}
public object Delete(DeleteProductRequest request)
{
... delete the product here
return new HttpResult { StatusCode = HttpStatusCode.Accepted };
}
}
감사하지만 때로는 2 + 2! = 5입니다. –