请注意,本站并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome浏览器
欢迎光临。交流群:166852192

Web Api in Orchard


Web Api is available in Orchard. You can implement a web api to fit your needs in a custom module.

Web Api在Orchard中可用。 您可以实现一个Web API,以适应您在自定义模块中的需求。

Creating Api Controllers

The process of creating an Api Controller in Orchard is very similar to how you would do so in a standard .NET Web Api application. Create your controller class and have it inherit from ApiController:
创建Api控制器


在Orchard中创建Api控制器的过程非常类似于在标准.NET Web Api应用程序中这样做。 创建你的控制器类,并让它继承自ApiController:
namespace MyCustomModule.Controllers.Api{    
public class MyApiController : ApiController{        
public IHttpActionResult Get(){            
var itemsList = new List<string>{                
"Item 1",                
"Item 2", 
"Item 3"
  };    
  return Ok(itemsList);
        }
    }
}
The above code sample will return the 3 item list shown in code when you hit the endpoint "/api/MyCustomModule/MyApi".

Declaring custom Api Routes

To generate more friendly Api routes, you follow a similar process to declaring custom MVC routes in Orchard. Implement the IHttpRouteProvider interface like so:
当您点击端点“/ api / MyCustomModule / MyApi”时,上面的代码示例将返回代码中显示的3项目列表。


声明自定义Api路由


为了生成更友好的Api路由,你遵循类似的过程在Orchard中声明自定义MVC路由。 实现IHttpRouteProvider接口如下:
namespace MyCustomModule {    
public class ApiRoutes : IHttpRouteProvider {        
public IEnumerable<RouteDescriptor> GetRoutes() {            
return new RouteDescriptor[] {                
new HttpRouteDescriptor {
                    Name = "Default Api",
                    Priority = 0,
                    RouteTemplate = "api/myapi/{id}",
                    Defaults = new {
                        area = "MyCustomModule",
                        controller = "MyApi",
                        id = RouteParameter.Optional
                    }
                }
            };
        }        
        public void GetRoutes(ICollection<RouteDescriptor> routes) {
            foreach (RouteDescriptor routeDescriptor in GetRoutes()) {
              routes.Add(routeDescriptor);
            }
        }
    }
}
Now, the Api endpoint can be reached by hitting "/api/myapi".

Configuring Web Api in Orchard

Since Orchard doesn't have the concept of an AppStart file, in order to add custom configuration to Web Api in Orchard, you must do so in an Autofac module. For example, the following will set the default Web Api return type to Json, and will ensure that Json objects/properties returned by the Api follow the camelCased naming convention.
现在,通过点击“/ api / myapi”可以到达Api端点。


在Orchard中配置Web Api


由于Orchard没有AppStart文件的概念,为了在Orchard中向Web Api添加自定义配置,必须在Autofac模块中这样做。 例如,以下内容将默认Web Api返回类型设置为Json,并确保Api返回的Json对象/属性遵循camelCased命名约定。
namespace MyCustomModule {    
public class WebApiConfig : Module {        
protected override void Load(ContainerBuilder builder) {
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 
var jsonFormatter = GlobalConfiguration.Configuration.Formatters.OfType<JsonMediaTypeFormatter>().FirstOrDefault(); 
if (jsonFormatter != null) {
 jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
         }
        }
    }
}

Conclusion

This document should provide the basics of getting started with Web Api in Orchard. Enjoy!
结论


本文档应提供在Orchard中开始使用Web Api的基础知识。 请享用!



作者原创内容不容易,如果觉得内容不错,请点击右侧“打赏”,赏俩给作者花花,也算是对作者付出的肯定,也可以鼓励作者原创更多更好内容。
更多详情欢迎到QQ群 166852192 交流。