ServiceStack Web과 Microsoft의 내장 webapi의 차이를 시험해보고 장점이 있는지 알아보고 싶습니다. 그래서 오늘 ServiceStack Web Service 애플리케이션을 만들어 보려고 합니다
1: 새로운 .NET 4.5 웹 빈 프로젝트를 생성한 후, nuget 명령어를 사용해 ServiceStack을 설치하세요:
.NET 버전은 버전 4.5 이상이어야 하며, 4.0 프로젝트는 성공적으로 설치되지 않습니다! 아래 그림에서 볼 수 있듯이.
2: 새 모델 및 서비스 폴더 생성
다음 코드로 요청 및 응답 엔티티를 생성하세요:
3: 서비스 폴더에서 서비스 인터페이스 생성
4: 이 프로젝트에 Global.asax라는 새로운 글로벌 애플리케이션 클래스를 생성하고, 코드는 다음과 같습니다:
5: web.config 구성을 수정하고, 새로운 system.webServer 노드를 추가하면 전체 구성은 다음과 같습니다:
지금까지 저희 서비스가 완료되었으며, 프로그램을 실행하면 다음과 같은 인터페이스를 볼 수 있습니다.GetAllUserInfoRequest와 GetByAgeUserInfoRequest는 실제 호출 메서드로 이해할 수 있습니다이 안에 정의된 매개변수는 아래 그림과 같이 메서드의 요청 매개변수로 해석할 수 있습니다:
ServiceStack의 서비스 메서드는 Any, Get, Post로 명명되며, 이 역시 ServiceStack에서 지원하는 요청 유형입니다.모든 수단은 HTTP Get과 HTTP Post 모두에서 호출될 수 있습니다。 이로 인해 RESTFull 스타일의 WebServices 구현이 강화되고 단순화됩니다. 이 방법들에 사랑을 더해 [Route(...)] 속성. ServiceStack에서는,메서드와 메서드의 차이는 서비스와 요청 객체인 Request DTO 매개변수에 의해 구분됩니다, WCF처럼 메서드 이름으로 구분하는 대신 , 즉,요청 DTO 객체는 ServiceStack 내 여러 서비스에 걸쳐 재사용할 수 없습니다。
get request 매개변수 뒤에 format 매개변수를 추가하면 form=json, format=xml 등과 같은 응답 유형을 반환할 수 있으며, jsonp 형식도 지원되는 것으로 보입니다.
예를 들어: http://localhost:52079//json/reply/GetAllUserInfoRequest?format=xml
요약하자면, 마이크로소프트의 웹 API와 비교했을 때 ServiceStack은 웹에서 메서드라는 개념이 없는 것 같습니다. 웹에서는 별도의 요청 엔티티가 하나의 메서드이고, 인터페이스 문서를 자동으로 생성할 수 있으며, 응답 형식도 포맷을 통해 반환할 수 있습니다(물론 마이크로소프트도 가능하지만, 마이크로소프트보다 더 단순하게 느껴집니다)
참고문헌: https://www.cnblogs.com/woxpp/p/5012947.html
https://msdn.microsoft.com/zh-cn/magazine/dn342871.aspx
https://github.com/ServiceStack/ServiceStack/wiki
마지막으로 프로젝트 소스 코드를 첨부하세요!
관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
|