master-data-servicesmaster-data-management

Master Data Services REST API


I have a Microsoft Master Data Services installation, SQL Server 2014. I need to provide a REST interface to allow an external system to push data into our MDS staging area. MDSS has a WCF API available out of the box but we specifically need to expose a REST service for an external system to utilise.

I'm considering creating an independent REST API to provide this access but would like to know if other options/approaches exist before I put in the effort.


Solution

  • I'm looking to implement something similar, however there is no simple solution. In my view the only way to do this is to create a Wrapper service (ASP.NET Web API / MVC) that then invokes the out of the box MDS WCF services.

    Although I've not found anything that matches exactly this requirement, there are some good reference open source projects. Take a look at:

    There are a few challenges that you'll have to think about though:

    1. Metadata update: When a new entity gets added / modified / attributes modified, how does your wrapper service change it's code? Runtime or do you run a separate small utility to update the DLLs, etc?
    2. Security: it is best to keep security within MDS.. the list of who has access to what. So basically you'd want the users to use your web service / app which in turn will invoke the MDS WCF. if you're using AD based security, this isn't that easy because your wrapper will need to Impersonate the end user, hence invoke the MDS WCF via the end user's credentials so that correct access control can be applied. I know there are ways to handle this but requires some DC level changes for the server/ID that your wrapper service will be running on.

    If you do go ahead with this, do make sure to share your insights & experience with us all.

    Best of luck !