/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package controllers.api;
import controllers.Common;
import play.Logger;
import play.mvc.Controller;
import play.mvc.With;
import plugin.ApiModelPlugin;
import javax.xml.bind.SchemaOutputResolver;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
import java.io.IOException;
import java.io.StringWriter;
/**
* API to retrieve schemas for the API.
*
* @author Chris Dail
*/
@With(Common.class)
public class SchemaApi extends Controller {
public static void schema() throws IOException {
final StringWriter writer = new StringWriter();
ApiModelPlugin.getInstance().getCtx().generateSchema(new SchemaOutputResolver() {
public Result createOutput(String namespaceUri, String filename) throws IOException {
Logger.debug("Generating API Schemas %s", filename);
StreamResult result = new StreamResult(writer);
result.setSystemId("schema.xsd");
return result;
}
});
renderXml(writer.toString());
}
}