@ পাথপরাম এবং @ ক্যোয়ারিপরামের মধ্যে পার্থক্য কী?


100

আমি রেস্টস্টুল জার্সিতে নবাগত। আমি জিজ্ঞাসা করতে চাই যে জার্সির মধ্যে @PathParamএবং এর @QueryParamমধ্যে কী আলাদা ?

উত্তর:


142

?চিহ্নের পরে ইউআরএলটিতে ক্যোয়ারী প্যারামিটার যুক্ত করা হয় , যখন কোনও পাথ প্যারামিটারগুলি নিয়মিত URL এর অংশ।

নীচের ইউআরএলে tomকোনও পাথ প্যারামিটারের মান হতে পারে এবং নাম idএবং মান সহ একটি ক্যোয়ারী প্যারামিটার রয়েছে 1:

http://mydomain.com/tom?id=1


15

@ রুবেন প্রদত্ত উপরোক্ত স্পষ্টির পাশাপাশি, আমি যুক্ত করতে চাই যে আপনি স্প্রিং আরএসটি সম্পূর্ণ বাস্তবায়নে এর সমতুল্যও উল্লেখ করতে পারেন।

JAX- আরএস স্পেসিফিকেশন @ পাথপরাম - একটি ইউআরআই টেমপ্লেট প্যারামিটারের মান বা একটি সংস্থান পথের বিভাগের টেম্পলেট প্যারামিটার, সংস্থান শ্রেণীর ক্ষেত্র, বা সংস্থান শ্রেণীর বিন বিনের সাথে সংযুক্ত করে।

@Path("/users/{username}")
public class UserResource {

        @GET
        @Produces("text/xml")
        public String getUser(@PathParam("username") String userName) {
            ...
        }
    }

@ ক্যোয়ারিপ্যারাম - এইচটিটিপি ক্যোয়ারী প্যারামিটারের মান (গুলি) একটি রিসোর্স পদ্ধতি প্যারামিটার, রিসোর্স ক্লাস ফিল্ড বা রিসোর্স ক্লাস বিন বিনের সাথে যুক্ত করে।

ইউআরআই: ব্যবহারকারী / ক্যোয়ারী? = 100 থেকে

@Path("/users")
public class UserService {

    @GET
    @Path("/query")
    public Response getUsers(
        @QueryParam("from") int from){
}}

স্প্রিং ব্যবহার করে একই অর্জন করতে আপনি ব্যবহার করতে পারেন

@ পাথ ভার্যিয়েবল (স্প্রিং) == @ পাথপারাম (জার্সি, জ্যাকস-আরএস),

@RequestParam (স্প্রিং) == @ কিওয়ারিপ্যারাম (জার্সি, জ্যাকস-আরএস)


1

অতিরিক্তভাবে, ক্যোয়ারী প্যারামিটারটি নাল হতে পারে তবে পাথের প্যারামিটারটি পারে না। আপনি যদি পাথের প্যারামিটার সংযোজন না করেন তবে 404 ত্রুটি পাবেন। সুতরাং আপনি যদি ডেটা বাধ্যতামূলক হিসাবে প্রেরণ করতে চান তবে আপনি পাথ প্যারামিটার ব্যবহার করতে পারেন।


0
    @javax.ws.rs.QueryParam
    This annotation allows you to extract values from URI query parameters.
    @javax.ws.rs.PathParam
    This annotation allows you to extract values from URI template parameters.

        PART-1 : @javax.ws.rs.PathParam

        @Path("/mercedes")
        public class MercedesService {
        @GET
        @Path("/e55/{year}")
        @Produces("image/jpeg")
        public Jpeg getE55Picture(@PathParam("year") String year) {
        ...
        }

    If I query the JAX-RS service with GET /mercedes/e55/2006, the getE55Picture()
    method would match the incoming request and would be invoked.

    PART-2 : @javax.ws.rs.QueryParam

 URI might look like this: GET /cus?start=0&size=10

        @Path("/cus")
        public class GreedCorruption {
        @GET
        @Produces("application/xml")
        public String getDeathReport(@QueryParam("start") int start,
        @QueryParam("size") int size) {
        ...
        }
        }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.