1、总体来说很简单,首先新建一个MVC框架的项目,模板选择WebAPI,这样就搞定80%了。
2、WebApiConfig.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace UrlToPngWebAPI
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.EnableSystemDiagnosticsTracing();
}
}
}
3、RouteConfig.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace UrlToPngWebAPI
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
4、请求结构
Web2PNGRequest.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json;
namespace UrlToPngWebAPI.Models
{
public class Web2PNGRequest
{
[JsonProperty]
public String WebURL { get; set; }
[JsonProperty]
public String HeaderPath { get; set; }
[JsonProperty]
public String FooterPath { get; set; }
}
}
5、返回结构
Web2PNGResponse.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Newtonsoft.Json;
namespace UrlToPngWebAPI.Models
{
public class Web2PNGResponse
{
[JsonProperty]
public int ErrorCode { get; set; }
[JsonProperty]
public String ErrorInfo { get; set; }
[JsonProperty]
public String PNGPath { get; set; }
}
}
6、Controller
Url2PNGController.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Helpers;
using System.Web.Http;
using Newtonsoft.Json;
using UrlToPngCsTest;
using UrlToPngWebAPI.Models;
using UrlToPngWebAPI.Pulgins;
namespace UrlToPngWebAPI.Controllers
{
public class Url2PNGController : ApiController
{
// 返回输入参数示例
public HttpResponseMessage Get()
{
Web2PNGRequest req = new Web2PNGRequest();
req.WebURL = "webURL";
req.HeaderPath = "headerPath";
req.FooterPath = "footerPath";
String jsonString = JsonConvert.SerializeObject(req);
HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(jsonString, Encoding.GetEncoding("UTF-8"), "application/json") };
return result;
}
// GET
public HttpResponseMessage Get(String WebURL, String HeaderPath, String FooterPath)
{
UrlToPng4Web.InitUrlTOPng4CS();
Web2PNGRequest req = new Web2PNGRequest();
req.WebURL = WebURL;
req.HeaderPath = HeaderPath;
req.FooterPath = FooterPath;
Web2PNGResponse rsp = UrlToPng4Web.UrlToPNG(req);
String jsonString = JsonConvert.SerializeObject(rsp);
HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(jsonString, Encoding.GetEncoding("UTF-8"), "application/json") };
return result;
}
// POST
public HttpResponseMessage Post(Web2PNGRequest req)
{
UrlToPng4Web.InitUrlTOPng4CS();
Web2PNGResponse rsp = UrlToPng4Web.UrlToPNG(req);
String jsonString = JsonConvert.SerializeObject(rsp);
HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(jsonString, Encoding.GetEncoding("UTF-8"), "application/json") };
return result;
}
}
}