BEGIN
ORDS.delete_module(p_module_name => 'media');
ORDS.define_module(
p_module_name => 'media',
p_base_path => 'media/',
p_items_per_page => 0);
COMMIT;
END;
/
BEGIN
ORDS.define_template(
p_module_name => 'media',
p_pattern => 'files/');
ORDS.define_handler(
p_module_name => 'media',
p_pattern => 'files/',
p_method => 'POST',
p_source_type => ORDS.source_type_plsql,
p_source => q'[BEGIN
media_api.upload(
p_file_name => :filename,
p_content_type => :content_type,
p_content => :body
);
:status_code := 201;
:message := 'Created ' || :filename;
EXCEPTION
WHEN OTHERS THEN
:status_code := 400;
:message := SQLERRM;
END;]',
p_items_per_page => 0);
ORDS.define_parameter(
p_module_name => 'media',
p_pattern => 'files/',
p_method => 'POST',
p_name => 'filename',
p_bind_variable_name => 'filename',
p_source_type => 'HEADER',
p_param_type => 'STRING',
p_access_method => 'IN'
);
ORDS.define_parameter(
p_module_name => 'media',
p_pattern => 'files/',
p_method => 'POST',
p_name => 'message',
p_bind_variable_name => 'message',
p_source_type => 'RESPONSE',
p_access_method => 'OUT'
);
COMMIT;
END;
/
BEGIN
ORDS.define_template(
p_module_name => 'media',
p_pattern => 'files/:filename');
ORDS.define_handler(
p_module_name => 'media',
p_pattern => 'files/:filename',
p_method => 'GET',
p_source_type => ORDS.source_type_plsql,
p_source => q'[BEGIN
media_api.download (p_file_name => :filename);
EXCEPTION
WHEN OTHERS THEN
:status_code := 404;
:message := SQLERRM;
END;]',
p_items_per_page => 0);
ORDS.define_parameter(
p_module_name => 'media',
p_pattern => 'files/:filename',
p_method => 'GET',
p_name => 'message',
p_bind_variable_name => 'message',
p_source_type => 'RESPONSE',
p_access_method => 'OUT'
);
COMMIT;
END;
/
URL : http://localhost:8080/ords/hr/media/files/
Method : POST
Header : Content-Type: ContentType
filename: FileName
Raw Payload: MediaFile
http://localhost:8080/ords/hr/media/files/FileName