<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>How to create a simple plain service - API or Service ?</title>
  <link rel="self" href="https://uat.liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=120485269" />
  <subtitle>How to create a simple plain service - API or Service ?</subtitle>
  <id>https://uat.liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=120485269</id>
  <updated>2026-10-15T11:17:00Z</updated>
  <dc:date>2026-10-15T11:17:00Z</dc:date>
  <entry>
    <title>How to create a simple plain service - API or Service ?</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=120485268" />
    <author>
      <name>Victor Manea</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=120485268</id>
    <updated>2020-12-01T18:30:41Z</updated>
    <published>2020-12-01T17:52:13Z</published>
    <summary type="html">&lt;p&gt;I have used so far a Service Builder (needed for exposing a service
  and then saving data in DB) and a Portlet (for displaying UI) for my
  project requirements. Now I am thinking of modularizing a little bit
  more - for example, I want to move file saving feature into a
  standalone Service and call it from Portlet when a new file is added.&lt;/p&gt;
&lt;p&gt;I am still in the grey zone when this matters comes - I do not know
  if I need a Service Builder, an API, a Service, etc. For example, if I
  go with a Service Builder template, it also gives me the packages for
  persistence, which I do not need (and more than this); if I go with
  API template, it only gives me an interface; the Service template
  seems more of what I need, but from the start it creates me a class
  that extends OmniAdmin class - why this and not creating alredy a
  custom interface with a custom component class ?&lt;/p&gt;
&lt;p&gt;In the meanwhile, I have created a module with Service Template type,
  then created a dummy interface which then I have implemented in the
  @Component class. - there was no method to implement, but the
  @Component class requires the &amp;quot;service&amp;quot; property, so I just
  created a dummy interface. Is this the way API/Services should be
  created ?&lt;/p&gt;
&lt;p&gt;For a beginner in Liferay, there isn't enough documentation on the
  purpose of these template types and what is their intend. Any more
  details on this, or documentation that explains with more details when
  one should go with one pick or another, would be much appreciated.&lt;/p&gt;
&lt;p&gt;Thanks !&lt;/p&gt;</summary>
    <dc:creator>Victor Manea</dc:creator>
    <dc:date>2020-12-01T17:52:13Z</dc:date>
  </entry>
</feed>
