UrlBuilder рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ TDD

UrlBuilder рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ TDD


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд╛рд╕ рддрдХрдиреАрдХреЛрдВ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореБрдЦреНрдп рдкреНрд▓рд╕, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рдордп, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдирджрдВрдб рд╣реИред

рд╣рдо рдПрдХ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдпреВрдЖрд░рдПрд▓ рдмрдирд╛рддрд╛ рд╣реИ - рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рд╣реЛрд╕реНрдЯ рдЖрджрд┐ред рдореИрдВ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рдВрдпреЛрдЧреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдмреАрдорд╛рд░ рдХрд▓реНрдкрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛


рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдлреА рдмрдбрд╝рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред рдореИрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрдЦ рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрд╡реЗрджрди рдПрдХ рдореЛрдЯрд╛ рдЧреНрд░рд╛рд╣рдХ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрдИ рд╡реЗрдм рд╕реЗрд╡рд╛ рдореЗрдВ GET рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдХрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП:

http://server.com?action=search&query=%20

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

http://server.com?action=search&query=%20&document_type_id=N

рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

http://server.com?action=search&query=%20&document_id=M

рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд┐рд░реНрдл рдХреБрдЫ рджрд░реНрдЬрди рд╡рд░реНрдЧред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдпрд╛ рддреЛ рдЙрддреНрдкрд╛рджрди рдпрд╛ рдПрдХ рджреЗрд╡ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡реЗрдм рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП url рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдЦреМрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ iPhone рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдХрд┐рдпрд╛ рдерд╛, рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдХрдИ рджрд╕рд┐рдпреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рддреБрд░рдВрдд рдЕрдкрдиреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрд╕рдВрддреБрд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрдВрдЧреЗред

Uri.Builder рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╡рд╣рд╛рдВ рдореЗрдЬрдмрд╛рди рдмрдВрджрд░рдЧрд╛рд╣ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдпреВрдЖрд░рдПрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдкрд╣рд▓реЗ рд╣рдо рддрдп рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдПрдХ url рдбрд┐рдЬрд╛рдЗрди рдХрд░реЗ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдЕрдкрдиреА рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ java.lang.String рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХреЗрдВред рдореИрдВ рдЦрд░реЛрдВрдЪ рд╕реЗ рдПрдХ url рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдореЗрдЬрдмрд╛рди, рдкрде рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдХреБрдЫ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдЖрджрд┐) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред

рд╡рд┐рдХрд╛рд╕: рд╡рд░реНрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг


рдЗрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ, рдХрдо рд╕реЗ рдХрдо 2 рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдПрдХ рдордирдорд╛рдирд╛ url рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛, рджреВрд╕рд░рд╛ рдХреБрдЫ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рд╕реЗ url рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдо рдмрд┐рд▓реНрдбрд░ рдФрд░ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

 public class UrlBuilder { public UrlBuilder protocol(String protocol){ return this; } public UrlBuilder host(String host){ return this; } public UrlBuilder port(String port){ return this; } public UrlBuilder path(String path){ return this; } public UrlBuilder param(String key, String value){ return this; } public String build() { return null; } } 


 public class ServerUrlBuilder extends UrlBuilder{ public UrlBuilder fullSearch(String query){ return this; } public UrlBuilder fullSearch(String query, int documentTypeId){ return this; } public UrlBuilder documentSearch(String query, long documentId){ return this; } } 


рдФрд░ рддреБрд░рдВрдд рд╣рдо рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ UrlBuilder рдХреЗ рд▓рд┐рдП ...

 public class UrlBuilderTest extends TestCase { public void testRootUrl(){ UrlBuilder builder = new UrlBuilder(); String expected = "http://server.com/"; String actual = builder1.protocol(UrlBuilder.HTTP).host("server.com").build(); assertEquals(expected, actual); } public void testRootUrlWithOneParam(){ UrlBuilder builder = new UrlBuilder(); String expected = "http://server.com/?a=b"; String actual = builder.protocol(UrlBuilder.HTTP).host("server.com").param("a","b").build(); assertEquals(expected, actual); } public void testFullUrl(){ UrlBuilder builder = new UrlBuilder(); String expected = "http://server.com/folder/?a=b"; String actual = builder.protocol(UrlBuilder.HTTP).host("server.com").path("folder").param("a","b").build(); assertEquals(expected, actual); } } 


... рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж ServerUrlBuilder рдХреЗ рд▓рд┐рдПред

 public class SereverUrlBuilderTest extends TestCase { public void testFullSearch(){ ServerUrlBuilder builder = new ServerUrlBuilder(); String expected = "http://server.com?action=search&query= "; String actual = builder.fullSearch(" "); assertEquals(expected, actual); } public void testFullSearchWithDocumentTupeId(){ ServerUrlBuilder builder = new ServerUrlBuilder(); String expected = "http://server.com?action=search&query= &document_type_id=123"; String actual = builder.fullSearch(" ",123); assertEquals(expected, actual); } public void testDocumentSearch(){ ServerUrlBuilder builder = new ServerUrlBuilder(); String expected = "http://server.com?action=search&query= &document_id=123456"; String actual = builder.documentSearch(" ",123456); assertEquals(expected, actual); } } 


рдкреВрд░реНрдг рдХрд╡рд░реЗрдЬ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдЬрдм рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдЧрд▓рдд рдореВрд▓реНрдп рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЖрдЪрд╛рд░ рд╕рдВрд╣рд┐рддрд╛ рдорд╛рдл рдирд╣реАрдВ рдХрд░ рд╕рдХрддреАред

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред рдмреЗрд╢рдХ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рднреА рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдб рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдорд╛рдирджрдВрдб рд╣реИред рдпрд╣ рдмрд╕ рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


UrlBuilder рд╡рд░реНрдЧ рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЬреЛрдбрд╝реЗрдВ - рдХрдИ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реАрдорд╛рдВрдХрдХред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХрд╛ рддрд░реНрдХ рджреЗрддреЗ рд╣реИрдВред

 public class UrlBuilder { public static final String HTTP = "http"; public static final String HTTPS = "https"; public static final String FTP = "ftp"; private static final String sProtocolHostSeparator = "://"; private static final String sPathSeparator = "/"; private static final String sParamSeparator = "?"; private static final String sParamEquals = "="; private static final String sParamConcotinator = "&"; private String mProtocol; private String mHost; private final ArrayList<String> mPath = new ArrayList<String>(); private final ArrayList<String> mParamKeys = new ArrayList<String>(); private final ArrayList<String> mParamValues = new ArrayList<String>(); public UrlBuilder(){} public UrlBuilder protocol(String protocol){ mProtocol = protocol; return this; } public UrlBuilder host(String host){ mHost = host; return this; } public UrlBuilder path(String path){ mPath.add(path); return this; } public UrlBuilder param(String key, String value){ mParamKeys.add(key); mParamValues.add(value); return this; } public String build() { final StringBuilder builder = new StringBuilder(); builder.append(mProtocol); builder.append(sProtocolHostSeparator); builder.append(mHost); builder.append(sPathSeparator); for(String path : mPath){ builder.append(path); builder.append(sPathSeparator); } if(mParamKeys.size()>0){ builder.append(sParamSeparator); for(int i=0; i<mParamKeys.size(); i++){ String key = mParamKeys.get(i); if(i!=0){ builder.append(sParamConcotinator); } String value = mParamValues.get(i); builder.append(key); builder.append(sParamEquals); builder.append(value); } } String result = builder.toString(); return result; } } 


рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБред рд╣реБрд░реНрд░реЗ, рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдлрд▓ рд╣реИрдВред рдпрд╣ ServerUrlBuilder рдХреЗ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред

 public class ServerUrlBuilder extends UrlBuilder{ public static final String SERVER_HOST = "server.com"; public static final String PARAM_ACTION = "action"; public static final String ACTION_SEARCH = "search"; public static final String PARAM_QUERY = "query"; public static final String PARAM_DOCUMENT_TYPE_ID = "document_type_id"; public static final String PARAM_DOCUMENT_ID = "document_id"; public UrlBuilder fullSearch(String query){ protocol(HTTP); host(SERVER_HOST); param(PARAM_ACTION, ACTION_SEARCH); param(PARAM_QUERY, query); return this; } public UrlBuilder fullSearch(String query, int documentTypeId){ protocol(HTTP); host(SERVER_HOST); param(PARAM_ACTION, ACTION_SEARCH); param(PARAM_QUERY, query); param(PARAM_DOCUMENT_TYPE_ID, documentTypeId); return this; } public UrlBuilder documentSearch(String query, long documentId){ protocol(HTTP); host(SERVER_HOST); param(PARAM_ACTION, ACTION_SEARCH); param(PARAM_QUERY, query); param(PARAM_DOCUMENT_ID, documentId); return this; } } 


рдкрд░реАрдХреНрд╖рдг рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдВ - рд╡реЗ рд╕рднреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╡рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдмреЗрд╢рдХ, рдЗрд╕ рд╣рдж рддрдХ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкреВрд░реНрдг рдФрд░ рд╕рдЯреАрдХ рдереЗред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдЯреАрдбреАрдбреА рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ UrlBuilder рд╡рд░реНрдЧ рдФрд░ рдЗрд╕рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди ServerUrlBuilder рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛: рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдмреЗрд╢рдХ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП UrlEncodeред рдпрд╣ рди рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдпреВрдЖрд░рдЖрдИ рдФрд░ рдЙрд░реА рднреА рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рд╣реИ, рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗред

Source: https://habr.com/ru/post/In130574/


All Articles