Implementing a MetaWeblog API for ASP.NET Core

Step 1

  • After Creating a ASP.NET CORE Web Application Project
  • Right Click –> Dependencies –> add Nuget
  • Search for “Tamils1809.MetaWeblog” in Nuget

Screenshot (305)

  • To install, use the Nuget "Tamils1809.MetaWeblog":
  PM> Install-Package Tamils1809.MetaWeblog
  • This project is an ASP.NET Core 2.0 Middleware component to support the MetaWeblog API
    that WordPress and Windows LiveWriter uses to support adding and editing of content
    in blogs.

Step 2

To support MetaWeblog, you must first create a class that implements the IMetaWeblogProvider interface:

 public class TestMetaWeblogService : IMetaWeblogProvider
  {
    public UserInfo GetUserInfo(string key, string username, string password)
    {
      // TODO
    }
    public BlogInfo[] GetUsersBlogs(string key, string username, string password)
    {
      // TODO
    }

    public Post GetPost(string postid, string username, string password)
    {
      // TODO
    }
    public Post[] GetRecentPosts(string blogid, string username, string password, int numberOfPosts)
    {
      // TODO
    }

    public string AddPost(string blogid, string username, string password, Post post, bool publish)
    {
      // TODO
    }
    public bool DeletePost(string key, string postid, string username, string password, bool publish)
    {
      // TODO
    }
    public bool EditPost(string postid, string username, string password, Post post, bool publish)
    {
      // TODO
    }

    public CategoryInfo[] GetCategories(string blogid, string username, string password)
    {
      // TODO
    }
    public MediaObjectInfo NewMediaObject(string blogid, string username, string password, MediaObject mediaObject)
    {
      // TODO
    }
    public int AddCategory(string key, string username, string password, NewCategory category)
    {
      // TODO
    }
  } 

Once you've implemented the class, you can register the middleware by first adding MetaWeblog in
ConfigureServices supplying the name of the implemented service class:

public void ConfigureServices(IServiceCollection svcs)
    {
      //...

      // Supporting Live Writer (MetaWeblogAPI)
      svcs.AddMetaWeblog<TestWeblogService>();
      //...
    }
 

Finally, you have to add MetaWeblog in the Configure call to specify the endpoint to listen on when
waiting for the MetaWeblog calls:

public void Configure(IApplicationBuilder app,
                          ILoggerFactory loggerFactory,
                          WilderInitializer initializer)
    {
      //...
      // Support MetaWeblog API
      app.UseMetaWeblog("/livewriter");
      //...
    } 

This simply handles the routing to your methods. It does not implement the service at all.

© 2018 - Tamilan Subramani
Design and Developed by TAMILS1809
Version 1.0.0 CV:feb201827

Follow Me